如何检查我的Rails应用程序是否已运行rufus-scheduler

时间:2017-03-31 13:22:59

标签: ruby-on-rails unicorn rufus-scheduler

我有一个Rails应用程序,它使用rufus-scheduler来安排它的一些任务。调度程序在启动Rails应用程序的unicorn脚本的after_fork中初始化(参考:https://gist.github.com/jkraemer/3851917)。

最近,我遇到了一个场景,即unicorn调度程序线程在托管它的独角兽进程仍处于活动状态时被杀死。这会导致调度程序停机很长时间而不另行通知。

我想设置一个警报和监控系统来处理应该具备以下功能的场景: 1.每当调度程序线程被杀死/中止时抛出警报。 2.如果Rails进程正在运行,请重新启动调度程序。

通过cron任务和处理自动重启来了解调度程序运行状态的合适方法是什么?

1 个答案:

答案 0 :(得分:1)

如果您带来了一个cron任务来观看rufus-scheduler,为什么不放弃rufus-scheduler并使用Whenever进行所有调度?因此,您将获得100%的解决方案。

另一种选择,使用Foreman来管理a)您的Rails应用程序b)托管您的rufus-scheduler日程表的单独进程(它可能只是"仅计划"您的Rails应用程序的版本) (这是blog post中的一个很好的例子)。还有God

如果你看一下受到rufus-scheduler启发的发条的发条,他们detail这样一个应用程序/多个处理scenarii。

然后你可以查看各种工具来查看日志并在出现错误时提醒您。

<强>更新

也许这个要点可以提供帮助:https://gist.github.com/jmettraux/5f716c8568f6ab7bb016a4bc11528bc2