我想在Ruby
中設置一個監聽者,每隔半小時將從一個頻道讀取消息。我很困惑在哪個Gem上使用:Bunny
(https://github.com/ruby-amqp/bunny)或AMQP
(http://rubyamqp.info)?我知道兔子是易於使用的。但這會解決我的目的嗎?Ruby中的監聽者:Bunny Gem或AMQP寶石
3
A
回答
4
您的腳本將如何觸發?有問題的卷是什麼?處理是按順序進行還是在某種基於事件的系統中進行?這兩個庫基本上是相同的 - 除了一個核心差異。
兔子是用於順序處理。在下一條消息被檢索之前,消息從隊列中彈出,處理並確認。爲了擴展這一點,您應該使用線程或進程一次處理更多消息。
AMQP gem基於事件並在EventMachine reactor內運行。這非常適合RabbitMQ或其他外部服務成爲瓶頸的輕負載。使用AMQP gem,消費者將消費盡可能多的消息(或告知),併爲每條消息啓動單獨的回調。如果回調進行自己的網絡呼叫,這可能是最好的解決方案,因爲它允許Ruby最有效地交織網絡通信。
簡短的總結,但基本上爲一個很少運行的腳本我會建議兔子的序列性質,特別是如果你以前沒有在EventMachine工作過。在不瞭解工作量的情況下很難完全回答。
看看jondot/sneakers爲現成的兔子框架。
相關問題
- 1. 如何搜索Ruby代碼中的寶石,或者Gem :: RemoteInstaller去哪裏?
- 2. 無法安裝Ruby AMQP Gem
- 3. Spring AMQP監聽器超時
- 4. 春天批次AMQP監聽
- 5. 用於監視其他寶石HTTP調用的Ruby寶石?
- 6. onItemSelected監聽者
- 7. 如何在系統()中替換寶石內紅寶石gem
- 8. IPN監聽貝寶
- 9. 'sudo gem install'或'gem install'和寶石位置
- 10. Ruby中的roo寶石
- 11. 紅寶石+ Ubuntu的不RVM:在執行寶石...(GEM :: FilePermissionError)
- 12. 我可以在EventHub上使用ruby模塊'Bunny'嗎?
- 13. Webbynode寶石衝突(GEM :: LoadError)
- 14. 使用紅寶石守護gem來監視C++文件
- 15. 安裝紅寶石的Gmail rubygem在Mac OS雪豹
- 16. jruby gem安裝錯誤或任何寶石:「錯誤:執行寶石時...(Errno :: ENOENT)」
- 17. 我們如何設置延遲排隊Bunny寶石和RabbitMQ?
- 18. 「常規」Ruby寶石或Rails引擎?
- 19. 紅寶石:在Ruby中
- 20. 使用紅寶石gem「creek」解析excel
- 21. Ruby統計寶石
- 22. 即使gem文件夾中已裝滿寶石,爲什麼gem list local找不到寶石?
- 23. 來自Mysql Gem的紅寶石錯誤
- 24. Ruby on Rails監聽器
- 25. 聆聽寶石和監視文件系統變化
- 26. 無法激活faraday_middleware-0.9.0 // Gem :: LoadError //嘗試運行口袋寶石寶石
- 27. 無法獲得聽寶石
- 28. ZeroMQ - 多個發佈者和監聽者
- 29. 紅寶石寶石是否或依賴?
- 30. Salesforce Soap API的Ruby寶石
感謝boffbowsh,您的比較幫助我做出我的決定,我可能會首先嚐試使用Bunny來解決我的問題域,即每5秒檢索一次所有消息(估計約0-20條消息) –
Bunny對我的需求非常滿意。這個資源是非常有用的http://rubybunny.info/articles/getting_started.html和這個http://rubybunny.info/articles/queues.html - 對於我的學習應用程序,我最終使用pull API來取消消息隊列1一次 –