TIM*_*MEX 2 python django asynchronous celery data-structures
#tasks.py
from celery.task import Task
class Randomer(Task):
def run(self, **kwargs):
#run Randomer again!!!
return random.randrange(0,1000000)
>>> from tasks import Randomer
>>> r = Randomer()
>>> r.delay()
Run Code Online (Sandbox Code Playgroud)
现在,我执行简单的任务.它返回一个随机数.但是,如何让它在该任务中运行另一项任务?
你可以other_task.delay()从里面打电话Randomer.run; 在这种情况下,您可能想要设置Randomer.ignore_result = True(和other_task.ignore_result,依此类推).
请记住,芹菜任务会delay立即返回,因此如果您没有对嵌套调用(或递归调用)设置任何限制或等待时间,您可以很快达到崩溃.
而不是递归或嵌套任务,你应该考虑一个无限循环,以避免堆栈溢出(没有双关语意图).
from celery.task import Task
class Randomer(Task):
def run(self, **kwargs):
while True:
do_something(**kwargs)
time.sleep(600)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8160 次 |
| 最近记录: |