【问题标题】:Give an entire Celery chain priority over new tasks让整个 Celery 链优先于新任务
【发布时间】:2016-02-24 13:23:47
【问题描述】:

我想启动一系列 Celery 任务,并让它们在任何新到达的任务之前全部执行。我将有一个工作进程来处理所有任务。

我想最简单的做法是根本不让它们成为链,而是启动一个同步调用一系列函数的任务。但我想利用 Celery 重试,允许每个任务重试不同的次数。

最好的方法是什么?

【问题讨论】:

    标签: celery


    【解决方案1】:

    如果你有一个工作人员运行一个进程,那么据我所知,使用 celery(这没有明确记录)你应该得到你想要的行为。

    如果您想使用多个工作进程,则可能需要将CELERYD_PREFETCH_MULTIPLIER 设置为 1。

    【讨论】:

    • 谢谢,但是当我启动我的任务链然后启动新任务时,新任务会在链完成之前开始执行。
    • CELERYD_PREFETCH_MULTIPLIER 设置为什么?
    • CELERYD_PREFETCH_MULTIPLIER 是 4,但我现在设置为 1,问题依旧:启动一个链(任务 1,任务 2),然后启动任务 3,执行顺序是任务1 -> 任务 3 -> 任务 2。
    猜你喜欢
    • 2018-06-10
    • 2013-03-26
    • 2011-03-23
    • 2018-07-06
    • 2014-11-03
    • 2014-07-10
    • 2017-03-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多