gpt4 book ai didi

django - 使用 Celery 以不同的优先级运行相同的任务

转载 作者:行者123 更新时间:2023-12-04 05:46:09 28 4
gpt4 key购买 nike

所以我有一个非常有趣的场景,我想运行具有不同优先级的相同 Celery 任务,具体取决于它的调用位置 - 例如,我想为高级用户运行一个优先级高于非高级用户的任务。

使用文档,我能够设置多个队列,并且能够通过将所有 .delay 调用更改为 .apply_async 调用并传入指定优先级队列的附加 routing_key 来使其工作。问题是必须在大量不同的地方执行此操作。有没有更好的方法来处理这个问题?我试图尽可能避免更改 View 中的代码,并且更愿意在任务或 celery 配置中处理此问题。

最佳答案

您可以使用部分评估而不是定义单独的任务。

from celery.task import task
from functools import partial

@task
def do_something():
pass

premium_do_something = partial(do_something.apply_async, routing_key="premium")

do_something.async_apply()
premium_do_something()

关于django - 使用 Celery 以不同的优先级运行相同的任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10659280/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com