-1

タイマー駆動の 2 つの Python アプリケーションがあります。これらのアプリケーションは、一定の時間間隔ごとに実行されます。タイマーによって駆動されるコードは、次のように駆動されます。

while True:  
 do_something()  
 sleep(10)

いくつか質問があります:

  1. アプリケーションは定期的に実行する必要があります。上記の方法は正しいですか?
  2. これらの種類のアプリケーションをデーモン化する必要が本当にあるのでしょうか、それともupstartなどのツールを使用して単にバックグラウンドで実行するだけでよいのでしょうか? これら 2 つのアプローチの違いは何ですか?
  3. 1 台のマシンに複数のアプリケーションがある場合 (マルチコア CPU を考えてください)、これらのアプリケーションは実行中にどのようにシステム リソースを取得するのでしょうか?
  4. CPU が他のタスクの実行でビジーで、その間にこれらのアプリケーションのタイマーが期限切れになった場合、CPU で実行されているジョブがプリエンプトされるか、ジョブの性質に依存するかはどうなりますか。したがって、ジョブが非プリエンプティブの場合、このジョブは処理のためにキューに入れられると理解しています。この場合、特定の時間間隔ごとにアプリケーションを実行する方法。
4

1 に答える 1

0

Celeryは、遅延タスクおよび定期タスクの業界標準です。

セロリを使用する利点は次のとおりです。

  1. タスクの重複を制御および防止できます
  2. タスクは OS ではなくコードで管理します
  3. 定期的なタスクについては、セロリの定期的なタスクを表示できます
于 2013-08-23T07:47:54.997 に答える