2015-03-02 67 views
0

我正在構建一個將使用RabbitMQ消息的Python 3應用程序。是否有一些Python後臺作業庫可以使這個變得簡單?我正在尋找類似於Ruby中Sneakers的東西。我想圖書館有:RabbitMQ的Python後臺工作人員

  • 簡單的方法來定義處理的RabbitMQ消息(我有一個單獨的非Python的生產者,將創建的消息,並把它們放到RabbitMQ的應用程序)的工作進程
  • 配置多項任務該運行 任務
  • 運行工人進程進程化
+0

你檢查'amqp'包? – 2015-03-02 06:27:20

回答

2

我相信你正在尋找Celery

如下

@task 
def mytask(param): 
    return 1 + 1 

我們將定義任務,將放置在消息代理(例如RabbitMQ的提到),然後消耗,芹菜執行

您可以配置的工人數量

celery worker --concurrency=10 

是的,它可以被妖魔化

+1

無論何時將消息添加到隊列中,我可以配置Celery運行任務嗎?我有一個單獨的非Python生產者應用程序,它將創建消息並將它們放入RabbitMQ – 2015-03-02 07:52:04

+0

是的,當然,這是默認情況。雖然我從來沒有試圖把任務放在非Python蟒蛇製作者的隊列中。 作爲額外的情況下,你可以定期運行任務(如cron),運行它們有一些延遲等 – Retard 2015-03-02 08:26:28

+0

我已經使用librabbitmq將任務從iOS應用程序放入隊列。只要你遵循任務格式(http://docs.celeryproject.org/en/latest/internals/protocol.html),它就會正常工作。 – jbg 2016-01-02 07:16:57