2017-01-11 24 views
1

ヘルプが必要です。与えられた時間間隔(3分ごとに)、最大再試行(5回の試行後にタスクを終了してください)、所定の時間内にタスクを実行するにはどのようにすればよいですか?タスクは、タスク内で何らかの条件が発生したときに終了する必要があります(通常のif-elseステートメント)。タスク内でセロリタスクを終了する

答えて

0

セロリはタスクを非同期に呼び出すツールに過ぎません。だからあなたの場合にはあなただけのように、タスク内の試み、期間および終了条件を間隔でタスクを起動し、チェックするためにセロリを使用します。

celery.py

app = Celery('test_celery_app') 
app.conf.beat_schedule = { 
    'run-every-3-mins': { 
     'task': 'celery.my_task', 
     'schedule': 180.0 
    }, 
} 

@app.my_task 
def my_task(): 
    if datetime.time(9, 0, 0) <= datetime.datetime.now().time() <= datetime.time(18, 0, 0): 
     for try_count in xrange(5): 
      # some operations 
      if check_termination_conditions(): # condition to terminate task 
       return 
関連する問題