我可能不正確地使用芹菜。但是我正在開發的聊天機器人需要具有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 –