并行处理——如何在ruby中用一个主进程管理多个工作进程



我需要在Ruby中开发多进程应用程序:一个主进程管理多个工作进程。Master创建(fork !)我不想要多线程,但多处理)拉工人,然后要求数据库的新记录进行定期处理,如果有的话-发送记录到工人通过管道。当worker完成它的工作时,它必须通知master,这样master就可以发送另一个记录给这个worker来处理。我找不到工人可以发送到主的通知的解决方案,似乎应该在异步中完成,但IO管道在同步模式下工作。请告诉我该怎么走?欢迎在评论中提出任何分叉的最佳实践!谢谢你。

p。我不想使用外部解决方案,如EventMachine或Parallel,只有分叉。

我确实认为MQ系统更合适。掌握作业的发布、作业的查询和作业的处理。

rails也有一个发布/订阅功能看到

http://api.rubyonrails.org/classes/ActiveSupport/Notifications.html

Rails pub/sub with faye

最新更新