【问题标题】:Sequential celery task execution顺序芹菜任务执行
【发布时间】:2021-12-16 07:15:15
【问题描述】:

我有一个繁重的 celery 任务,将数据从 XML 文件解析到数据库,有时我在处理媒体文件时遇到问题,因为 celery 任务运行多个解析器,而我不需要。所以我想知道有什么办法可以按顺序执行吗?我的意思是,在每次成功解析或类似的事情之后,我都需要某种延迟。

【问题讨论】:

    标签: python django 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 个任务吗?
    • 是的,您可以使用不同的参数多次链接相同的任务。我链接到的文档有这种性质的例子。
    猜你喜欢
    • 2017-09-30
    • 2013-02-19
    • 2018-09-08
    • 2021-05-15
    • 2018-03-07
    • 1970-01-01
    • 2017-04-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多