2012-07-31 32 views
1

输入:如何在芹菜中配置延迟时间?

>>> from registration import tasks 
>>> tasks.mail.delay() 
<AsyncResult: 36a2e61c-493b-472c-99f1-cb2391110aa9> 
>>> r=tasks.mail.delay() 
>>> r.ready() 

输出:

Traceback (most recent call last): 
     File "<stdin>", line 1, in <module> 
     File "/usr/local/lib/python2.6/dist-packages/celery/result.py", line 174, in ready 
     return self.state in self.backend.READY_STATES 
     File "/usr/local/lib/python2.6/dist-packages/celery/result.py", line 277, in state 
     return self.backend.get_status(self.id) 
     File "/usr/local/lib/python2.6/dist-packages/celery/backends/base.py", line 487, in _is_disabled 
     raise NotImplementedError('No result backend configured. ' 
    NotImplementedError: No result backend configured. Please see the documentation for more information. 

如何配置后端所以taht我可以解决延迟的特定时期

+1

如果我正确理解你,你正在寻找指定任务运行时间的时间,那么你不需要结果后端,你必须使用.apply_async方法,延迟是一个快捷方式:'任务.mail.apply_async(countdown = 3)'参见http://docs.celeryproject.org/en/latest/userguide/calling.html – asksol 2012-07-31 12:11:42

回答

3

甲结果后端可以通过CELERY_RESULT_BACKEND设置如果被配置您使用celeryconfig.py配置模块

CELERY_RESULT_BACKEND="amqp" 

或通过芹菜实例

celery = Celery('tasks', backend='amqp', broker='amqp://') 

请更多信息请查看docs