2011-08-18 389 views
2

我有一個應用程序有一些錯誤。出於某種原因,只有一個應用程序在那裏時纔會創建2個消費者 - 並且其中一個消費者不再檢查消息。從rabbitmq斷開連接的方式

我可以通過列出服務器上的隊列和使用者數量來檢測這種情況。有沒有辦法從服務器端摧毀該消費者?

回答

4

使用rabbitmqctl工具(請參閱man page)或使用Web UI可以終止與RabbitMQ代理的連接。您還可以清除和刪除屬於流氓用戶的隊列。

但是,您不能使用這些工具殺死使用者進程本身。你真的應該只關注於修復應用程序中的錯誤,以便只有正確數量的消費者被創建。

+0

但這並工作得到被殺死,差不多。出於某種原因,有兩個消費者,但只有一個連接分配給其中一個連接。另一個消費者只是......存在。現在尋找這種情況的解釋。 – viraptor

+0

不知道...如果你重新啓動你的經紀人,問題依然存在嗎? –

1

消費者可以通過使用rabbitmqctl輸入close_connectionconnectionpid

例如

> rabbitmqctl close_connection "<r[email protected]>" "reason here" 

connectionpid可以通過

> rabbitmqctl list_consumers 

Listing consumers ... 
send_email_1 <[email protected]> amq.ctag-oim8CCP2hsioWc-3WwS-qQ true 1 [] 
send_email_2 <[email protected]> amq.ctag-WxpxDglqZQN2FNShN4g7QA true 1 [] 

的RabbitMQ 3.5.4