0

以下のプログラムは、ステータスが0の Job テーブルをチェックし、値を1に変更します。何も見つからない場合は、5 秒間スリープしてから、新しいエントリをチェックします。プログラムは正常に動作しますが、問題なく何日もノンストップで実行できるかどうか、私の解決策が心配です。リスナーを使って実装する方が良いかどうか考えています。それを実装する方法について何か提案はありますか?みんなありがとう!

import time
from apps.models.joblist import Jobs

def start_jobs():
  try:
    j = Jobs.objects.filter(status=0)[0]
    #do some job here
    j.status = 1
    j.save()

    Jobs.objects.update()
    start_jobs()
  except Exception as error:
    time.sleep(5)
    start_jobs()
4

1 に答える 1

0

定期的なタスクには Celery を使用することをお勧めします。これは、このようなタスクで最も一般的に使用される拡張機能であり、優れたドキュメントがたくさんあります。

詳細については、こちらをご覧ください。

于 2013-09-03T07:57:59.337 に答える