从应用服务器分叉延迟工作?

时间:2010-01-20 17:10:31

标签: ruby-on-rails ruby fork delayed-job background-process

这是我想要延迟工作的简单理想情况:

  • 当第一个应用程序服务器(无论是通过杂种还是乘客)启动时,它将启动我的延迟工作人员。
  • 当最后一个正在运行的应用程序服务器终止时,它将终止所有延迟的作业工作者。

第一部分(开始)是可行的,虽然我不确定“正确”或“最好”的方法是什么。只需对delayed_job start进行一个条件(on process not running)系统调用?

第二部分(终止) - 好吧,我不确定它是否可行。绝对不知道如何实现这种效果。

有什么想法或想法吗?

您是否有另一种方式可以开始/结束您认为最好的延迟求职者?

附带问题: 上面的主要问题是生产环境 - 一个更难的情况,因为有多个app服务器同时运行。是否可以通过分配子进程来运行延迟的作业工作人员来完成同样的事情,在开发环境中(保证只有一个应用程序服务器,而不是它们的集群),当父进程终止时,它们总是会终止?我该怎么做呢?

1 个答案:

答案 0 :(得分:1)

你绝对可以通过god来终止。

只需观看应用程序进程,当它们全部停止时,上帝会触发回调。