我需要在Ruby中有2个(或者3个)持续运行的程序“方面”--一个通信线程,一个渲染线程,也许还有一个缓存线程。
其思想是呈现线程显示幻灯片(其定义从文件中读取),并且通信线程从远程HTTP服务器检索所有幻灯片。渲染必须是连续的并且不会停止(因此可能需要缓存)。在程序的生命周期中,文件可能会发生变化,因此需要重新解析(动态)。
我想在“方面”之间发送消息,例如,当通信线程获得节目的整个“章节”时,渲染线程可以在等待下载整个节目之前启动,等等。
我应该使用Ruby线程还是DRb?如何在线程之间传递消息?
感谢您的反馈!
发布于 2009-08-28 11:54:15
从一开始就保持简单--总是最好的建议。从两个线程开始,看看性能是否符合您的需求。您可以使用条件变量或简单的Mutexes来同步检索到的章节列表。你可能会遇到不足的问题--没有可用于渲染的章节,但你至少会有一个只使用核心Ruby的可行解决方案的骨架。
然后,一定要看看提供其他可能性的解决方案。除了DRb之外,您还应该查看EventMachine (阅读章节时可能需要的异步功能)和RabbitMQ,了解消息传递系统提供的更通用和更松散的耦合。
从小处着手,不要尝试走得太快。对于任何关心Ruby线程的人来说,我正在运行一个侦听RabbitMQ队列的小型报表呈现客户端。客户端使用四个线程来渲染(google)图形、发送警报和自动重置各种队列(在收集了几个小时的数据之后)。所有的工作都很棒!
克里斯
https://stackoverflow.com/questions/1346368
复制相似问题