我可以在运行时在任务上定义芹菜队列属性吗?
问题描述:
class MyTask(Task):
queue = 'default_queue'
def run(self):
# do work
通常我会跑这将使用“DEFAULT_QUEUE”规定以下。
MyTask.delay()
我需要做的是一样的东西:
if hours_since_last_login > 24:
MyTask.delay() # using the queue 'high_priority_queue'
else:
MyTask.delay() # using the 'default_queue'
我知道我可以继承MyTask覆盖queue
属性,但有没有办法在运行时定义的呢?
这是下面的正确方法吗?
task = MyTask()
task.queue = 'high_priority_queue'
task.delay()
答
从askol上IRC:
MyTask.apply_async(args=[], kwargs={}, queue='high_priority_queue')