Python 2.6でschedモジュールを使用して、60秒ごとに関数を実行しています。各呼び出しは、遅延60、優先度1で実行した後にsched.enter()関数を発行します。これはうまくいきました。遅延されたPythonのスケジュール実行の原因
しかし、sched関数の次回の実行が数分、さらには5〜6分後であっても起こらない場合があります。これは仮想マシン上で観察されています。
この原因は何ですか?タスクが定期的に実行されるようにするための回避策はありますか?
Python 2.6でschedモジュールを使用して、60秒ごとに関数を実行しています。各呼び出しは、遅延60、優先度1で実行した後にsched.enter()関数を発行します。これはうまくいきました。遅延されたPythonのスケジュール実行の原因
しかし、sched関数の次回の実行が数分、さらには5〜6分後であっても起こらない場合があります。これは仮想マシン上で観察されています。
この原因は何ですか?タスクが定期的に実行されるようにするための回避策はありますか?
sched.enter
が呼び出されるまでにどのくらいの時間がかかるのですか?私はこれを監視し、sched.enter
のdelay
パラメータでその処理時間を考慮に入れることをお勧めします。
VMとVMホストの負荷も重要な要素になります。私は、VMホストが高すぎる負荷とスワッピングを受けているために、一部のアプリケーションでパフォーマンスの低下が見られました。
仮想化されたボックスで時間が継続していることを確認してください。仮想マシンでは、時間がゆっくりと実行されていた仮想マシンでいくつかの問題が発生しました(仮想ボックスでの1分の時間はリアルタイムで数分でした)。 –