顺序芹菜任务执行
Posted
技术标签:
【中文标题】顺序芹菜任务执行【英文标题】:Sequential celery task execution 【发布时间】:2021-12-16 07:15:15 【问题描述】:我有一个繁重的 celery 任务,将数据从 XML 文件解析到数据库,有时我在处理媒体文件时遇到问题,因为 celery 任务运行多个解析器,而我不需要。所以我想知道有什么办法可以按顺序执行吗?我的意思是,在每次成功解析或类似的事情之后,我都需要某种延迟。
【问题讨论】:
【参考方案1】:Celery 有一个链概念,您可以在其中将任务链接在一起,以便在前面的任务成功完成后执行。
https://docs.celeryproject.org/en/stable/userguide/canvas.html#chains
【讨论】:
所以我只需要在调用任务之前添加“apply_async”吗? 不,在第一个示例中,apply_async() 正在调用初始任务 docs.celeryproject.org/en/stable/userguide/calling.html#basics,链接是传递给 apply_async() 的关键字参数。 Chain 是一个特殊的签名,使任务的链接更加容易:docs.celeryproject.org/en/stable/reference/… 是的,我明白了,但是我有 1 个 celery 任务要执行多次,它只适用于 1 个任务吗? 是的,您可以使用不同的参数多次链接相同的任务。我链接到的文档有这种性质的例子。以上是关于顺序芹菜任务执行的主要内容,如果未能解决你的问题,请参考以下文章
Celery---一个懂得异步任务,延时任务,周期任务的芹菜