2017-11-18 6 views
2

私はこのpythonアプリを持っていると私は特定のdatetimesでタスクをスケジュールする必要があります。正確に指定された日付と時刻が、で関数funcを呼び出しますPythonどのように私は正確に1つの時間の仕事をスケジュールする

scheduler.add(datetime,func()) 

私のようなものを考えていました。私は数秒、さらにはミリ秒の精度を求めています。

「スケジューラ」モジュールを検索して試しましたが、hh:mm:ssの代わりにhh:mm形式でのみ使用できます。

私は私が標準ライブラリからschedモジュールは*かなり良い精度を有しており、デフォルトでtime.timeを使用して明確な

答えて

0

だ願っています。それはあなたが記述しているのと同様のAPIを持っています

import sched 
from datetime import datetime 

s = sched.scheduler() 
s.enterabs(datetime(2018, 1, 1, 12, 20, 59, 0).timestamp(), 1, func) 
s.enterabs(datetime(2018, 1, 1, 12, 20, 59, 500000).timestamp(), 1, func) 
s.run() 

このプログラムは半分秒(500000ミリ秒)後に、その後、再び、12時20分59秒で2018年1月1日にFUNCを実行します終了する。

はもちろん、あなたが文字列からdatetimeを解析し、そこから作業、または単に直接タイムスタンプを入力することを含む、タイムスタンプを取得する任意の方法を使用することができます。


*:LinuxおよびMacでは、精度はtime.timeで、約1μsです。 Windowsでは、約16msです。少なくとも1秒であることが保証されています。

0

多分funcにある場合は、time.sleep(s)を最初に追加すると、2番目の数字に正確にすることができます。また、関数を渡すときにはではなくfunc()を渡します。func()は値を返し、funcは関数

です。
関連する問題