2012-03-22 65 views
2

使用案例:我可以在运行时在任务上定义芹菜队列属性吗?

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() 

回答

4

从askol上IRC:

MyTask.apply_async(args=[], kwargs={}, queue='high_priority_queue') 
相关问题