1. time.sleep
2. sched.scheduler
3. threading.Timer
他のプログラムと4
セロリ
Redisの遅延キューイング
日常の開発では、多くの場合、このような需要が発生し、一定期間後に特定の効果を達成するために一つだけの機能を実行することが必要です。この時点で、我々は、関数の実装を遅らせるためのメカニズムのいくつかの並べ替えを必要とします。そして、簡単にこれらの効果を達成する2つの方法を説明します。
schedの
インポートSCHED、時間
DEF FUNC(A):
プリントtime.time(),, "!こんにちは日程"
プリントtime.time()
S = sched.scheduler (time.time、time.sleep)
#2の遅延時間であり、1が優先され、funcがパラメータの関数として( "TEST1")、関数名
s.enter(2,1、FUNC、( " TEST1"、 ))
s.enter(2,0、FUNC、( "TEST2"は、))
s.run()
)(time.time を印刷し
、次の出力:
1519443179.4
!1519443181.4こんにちはTEST2日程を
!1519443181.4こんにちはTEST1日程が
1519443181.4
結果から分かります同じの実装は2S、およびtest2はtest1により高い優先度であるため、アウト、2sが、本当に最初の実装よりも、TEST1とTEST2遅れた機能を実行する
タイマー
インポートスレッディング、時間
DEF FUNCを(A):
time.time印刷()、 "タイマーこんにちは!"、
印刷time.time()
S = Threading.Timer(2、FUNC、( "テスト"、))
s.start()
)(time.time を印刷
出力次のように:
1,519,443,055.69
1,519,443,055.69
!1,519,443,057.69こんにちはテストタイマーは
2S機能が実際に実行を遅らせ、結果から見ることができます。
2つの出力の方法の結果から分かるように、タイマーが非同期で実行され、次のコードを実行詰まっていないが、実行がダウン完了するまでschedの機能が実行されるまで待機します。
いくつかの参照:https://www.jianshu.com/p/944ae43e2662
https://www.jianshu.com/p/a8c1458998aa
https://segmentfault.com/a/1190000010021748
https://tech.youzan.com/queuing_delay/