终止任务中的芹菜任务

时间:2017-01-11 07:41:53

标签: python django celery

需要你的帮助。如何在给定的时间间隔(每3分钟),最大重试次数(在终止5次尝试任务之后)的代码中运行芹菜任务,在给定的时间段内(任务只能在上午9点到下午6点工作)和任务必须在任务(ordinal if-else语句)中出现某些条件时自行终止

1 个答案:

答案 0 :(得分:0)

正如我所看到的,celery只是一种异步调用任务的工具。因此,在您的情况下,您只使用celery来调用具有间隔的任务,并检查任务中的尝试,期间和终止条件,例如:

<强> 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