2012-06-12 28 views
0

我開始閱讀的RabbitMQ達決定,如果我們可以用它來一個新的Web項目 - 我非常興奮,現在:-)的RabbitMQ - 堅實的軟件架構

  1. 我看到使用的樣本作爲消費者在控制檯應用程序中進行某種while(true)循環。什麼是在Windows平臺上實現消費者的堅實而容錯的方式。我想一個Windows服務?有沒有人做到這一點,並在生產中運行,也可以分享他的經驗?

  2. 我想要做的只是將MQ放在一臺服務器上,從Web應用程序中推送消息並使用第二臺服務器連接到第一臺服務器上的MQ,輪詢消息(每秒)和執行一些操作。 RabbitMQ可以嗎?

THX 淡

回答

1
  1. 這有什麼錯while (true)處理?只要你在這個循環中有一個機制來優雅地擺脫它,它可能就是你所需要的。與Windows SCM集成也沒有問題,您只需在service control handler function之內查看SCM事件,如SERVICE_CONTROL_STOP,然後做出相應的反應。

  2. 是的,完全合理和非常普遍。也就是說,可能不需要每秒輪詢新事件。只需讓消費者啓動一個線程,無限期輪詢RabbitMQ並在事件到達後處理事件。否則,你會招致大量不必要的投票流量。

+0

消費者應該有一個使用QueueingConsumer.Delivery delivery = consumer.nextDelivery()的while循環;通過這種方式,只要到達時就會收到下一條消息,而無需輪詢。 – robthewolf

+0

好的,這聽起來不錯,thx一堆,夥計們!我會嘗試,可能會回來一些更多的Rabbit-y問題;-) –