2012-03-22 63 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') 
相關問題