问题描述
假设我有以下代码,我需要依赖于其他任务的任务,但有些任务是长时间运行的,并且需要某种类似的 .join asyncio,它会等待一个任务结束才能继续下一个任务,但我的工作流程如下,但一切都需要与入口点函数/任务异步,在那里它将成为我所有链接任务的调用者或另一种方法,以保持动态时间始终从其内部永远运行
daily_cleanup > runs each minute
fix_unkNown_emplids runs each 5 minutes
get_role_people runs each minute
import_grads runs each 10 minute
示例
beat_schedule = {
'daily_cleanup': {
'task': 'celery_app.tasks.daily_cleanup','schedule': timedelta(seconds=60),},'fix_unkNown_emplids': {
'task': 'celery_app.tasks.fix_unkNown_emplids','schedule': timedelta(seconds=300),'get_role_people': {
'task': 'celery_app.tasks.get_role_people','import_grads': {
'task': 'celery_app.tasks.import_grads','schedule': timedelta(seconds=600),}
}
def chain_demo():
tasks = [
daily_cleanup.si(),# 1 min
fix_unkNown_emplids.si(),# 5 min
get_role_people.si(),# 1 min
import_grads.si(),# 10 min
]
chain(*tasks).apply_async()
@app.task
def daily_cleanup():
time.sleep(60)
return '60'
@app.task
def fix_unkNown_emplids():
time.sleep(300)
return '300'
@app.task
def get_role_people():
time.sleep(60)
return '60'
@app.task
def import_grads():
time.sleep(600)
return '600'
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)