1
ヘルプが必要です。与えられた時間間隔(3分ごとに)、最大再試行(5回の試行後にタスクを終了してください)、所定の時間内にタスクを実行するにはどのようにすればよいですか?タスクは、タスク内で何らかの条件が発生したときに終了する必要があります(通常のif-elseステートメント)。タスク内でセロリタスクを終了する
ヘルプが必要です。与えられた時間間隔(3分ごとに)、最大再試行(5回の試行後にタスクを終了してください)、所定の時間内にタスクを実行するにはどのようにすればよいですか?タスクは、タスク内で何らかの条件が発生したときに終了する必要があります(通常のif-elseステートメント)。タスク内でセロリタスクを終了する
セロリはタスクを非同期に呼び出すツールに過ぎません。だからあなたの場合にはあなただけのように、タスク内の試み、期間および終了条件を間隔でタスクを起動し、チェックするためにセロリを使用します。
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