我需要2个(或者3个)连续运行Ruby中程序的“方面” - 一个通信线程,一个呈现线程和一个缓存线程。线程或DRb?
想法是呈现线程显示幻灯片放映(其定义从文件中读取)并且通信线程从远程HTTP服务器检索所有幻灯片。渲染必须是连续的,没有停止(因此可能需要缓存)。该文件可能会在程序生命周期中发生变化,因此需要重新解析(即时)。
我想在“方面”之间发送消息,例如当通信线程获取整个“章节”的节目时,呈现线程可能会在等待整个节目下载之前启动,例如,等等上。
我应该使用Ruby线程还是DRb?我如何在线程之间传递消息?
感谢您的任何反馈!
我只考虑,因为通过能力消息的DRb - 我不能与线程,对吧?我的意思是,我可以用互斥体破解它,但它仍然是一个黑客......对不对? :) DRb似乎更容易。 – 2009-08-28 14:00:53
如果您需要多个进程,您只需要一个消息传递系统。这听起来不像你需要多个进程,因此我建议保持简单。我正在做一些类似于自己的事情(收集远程数据,处理它并呈现输出),并且一个简单的线程系统会很好 - 我为每个阶段和一个附加线程都有一个线程 - 不需要DRb。但使用你认为你需要的东西! 祝你好运! – 2009-08-29 14:33:00
恕我直言,RabbitMQ建议是正确的方法。我之前用DRb和RabbitMQ做过这种事情,而DRb解决方案并不理想。 RabbitMQ的速度要快几个数量级,如果你使用的是Celldee的Bunny库,它也容易得多。 – 2009-09-27 01:37:00