2015-12-09 4 views
0

Я хочу поставить задачу на сельдерей, но я хочу, чтобы задача выполнялась через 30 секунд, а не выполнялась немедленно.отложенное выполнение задачи сельдерея

Например:

@celery.task 
def task(): 
    # waiting 30 seconds 
    do something.... 

я могу использовать его, чтобы сделать это: sleep(30), но есть ли лучшее решение?

ответ

2

Лучшим способом для задачи этой задачи было бы запланировать реальную задачу за 30 секунд. Нечто подобное:

@celery.task 
def task(): 
    RealTask.apply_async(countdown=30) 
+0

Я проверяю [сельдерея документ] (http://docs.celeryproject.org/en/master/_modules/celery/app/task.html#Task.apply_async) 'countdown' опция тоже может работать. Это правильно? – pangpang

+0

Вы правы, еще проще –