我可能不正确地使用芹菜。但是我正在开发的聊天机器人需要具有redis的芹菜异步任务。这是我正在使用的框架:http://microsoftbotframework.readthedocs.io/en/latest/asynctasks/。如何从先前的芹菜任务中产生芹菜任务?
我的特殊使用案例目前需要我运行一个芹菜任务永远并等待一段任意的时间,范围从30分钟到3天。像这样的东西
@celery.task
def myAsyncMethod():
while true:
timeToWait = getTimeToNextAlarm()
sleep(timeToWait)
sendOutMessages()
基本上,我有一个从不退出的异步过程。我很确定不应该像这样使用芹菜。 所以我的问题是,我如何创建一个芹菜任务来处理第一个任务,产生一个任务并将其提交给芹菜队列并退出。基本上是这样的:
@celery.task
def myImprovedTask():
timeToWait = getTimeToNextAlarm()
sleep(timeToWait)
sendOutMessages()
myImprovedTask().delay() # recursive call to async method for next event
不一定递归甚至像这样的事,但它是芹菜的方式原本打算使用(短暂的任务,我相信?)
铊; dr:我如何从另一个任务中创建一个芹菜任务并使原始任务退出?
请告诉我是否应该进一步解释。谢谢。
如果您想要定期运行任务,那么它在这里:http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html –