簡體   English   中英

創建芹菜多個隊列

[英]Create celery multiple queues

我有一個包含類別列表的配置文件

cat_link = {'cat1':[link1,link2....],'cat2':[link3,link4....],'cat3':[link5,link6....],'cat4':[link7,link8....]}

我想根據配置文件中定義的類別總數創建隊列,當我處理特定類別的鏈接時,每個隊列也應處理自己的一組鏈接。

處理鏈接的任務是相同的。 我只希望每個類別鏈接都應在其特定隊列中處理。

應該是這樣的:

for category, link in cat_link.iteritems():
    process_link.apply_async(args=[link],
                             queue=category,)

我應該如何創建動態隊列,同時牢記將來可以刪除/添加任何類別?

我的celeryconfig應該如何顯示? 目前如下:

BROKER_URL = 'amqp://'
CELERY_RESULT_BACKEND = 'amqp://'

CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ACCEPT_CONTENT=['json']
CELERY_TIMEZONE = 'Europe/Oslo'
CELERY_ENABLE_UTC = True

#Should I read my `cat_link` config setting in a loop and then create the queues??

我見過不同的隊列來執行不同的任務,但是同一任務可能有不同的隊列嗎?

如果您想動態地使用其他隊列,

process_link.apply_async(args=[link1],
                         queue=queue1)

process_link.apply_async(args=[link2],
                         queue=queue2)

另外,您必須在配置文件中插入以下內容

CELERY_CREATE_MISSING_QUEUES = True

但是您需要關心的一件事是啟動工作程序時,您必須傳遞-Q'queue name'作為參數。

對於前

celery -A proj worker -l info -Q queue1,queue2

用於從隊列“ queuename”中消費

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM