如何在ruby中使用一个主进程管理多个工作进程?

时间:2013-01-06 07:02:49

标签: ruby parallel-processing fork pipe worker

我需要在Ruby中开发多进程应用程序:一个主进程管理多个工作进程。 Master创建(分叉!我不想要多线程,但多处理)拉动工作人员,然后要求数据库定期处理新记录,如果有的话 - 通过管道向工人发送记录。当工作人员完成其工作时,它必须通知主人,因此主人可以向该工作人员发送另一个记录来处理。我找不到工作人员可以发送给master的通知的解决方案,好像应该在异步中完成,但IO管道在同步模式下工作。请给我指点一下去?评论中的任何fork最佳实践也受到欢迎!谢谢。

PS。我不想使用像EventMachine或Parallel这样的外部解决方案,只有叉子。

1 个答案:

答案 0 :(得分:2)

我确实认为MQ系统更合适。 master发布作业,查询和处理作业。

rails还具有发布/订阅功能 见

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

Rails pub/sub with faye