2014-11-03 62 views
2

我目前正在嘗試使用RabbitMQ(具有出色的RabbitMQBundle)來處理大量的異步工作。RabbitMQ包:一個隊列和多個工作人員

的目標是有一個隊列發佈同一類型的消息,並有多個服務器X工人同時查看消息。

每個工人要偷看一個消息,你的工作,然後偷看另一個消息等。

這裏我的conf:

old_sound_rabbit_mq: 
connections: 
    default: 
     host:  'localhost' 
     port:  5672 
     user:  'myuser' 
     password: 'mypassword' 
     vhost: '/' 
     lazy:  false 
producers: 
    generate_report: 
     connection:  default 
     exchange_options: { name: 'gen_report', type: fanout } 
consumers: 
    generate_report: 
     connection:  default 
     exchange_options: { name: 'gen_report', type: fanout } 
     queue_options: { name: 'gen_report' } 
     callback:   generator.report.consumer 

在我消費,我有一個日誌文件和一個條目睡眠120秒。

我開始php應用程序/控制檯rabbitmq:consumer generate_report喜歡10次,但是當我看我的日誌文件我只有每個120的消息,目標是有10!

我也嘗試將我的隊列設置爲主題或直接使用相同的結果。

我不明白我做錯了什麼:「(提前

感謝

親切的問候

+0

請您進一步解釋問題。我不明白你有什麼和你想要什麼? – 2014-11-03 12:23:20

+1

我希望例如2名工作人員使用相同的隊列同時生成我的報告。 目前,當我開始2個工人只有一個(第一個)工作。第二個什麼都不做,除非當我關閉第一個 – 2014-11-03 13:10:32

+0

啊哈,現在我明白了。工人似乎互相鎖定。你有什麼想法,他們可以競爭什麼樣的資源?輸出文件可能(也應該)在它們上面有文件鎖,數據庫表(用於MyISAM)和行(用於InnoDB)都有鎖。這是第一名工作人員阻止第二名工人做任何事情的東西 – 2014-11-03 14:24:30

回答

相關問題