我有一个 Rails 应用程序,它使用 rufus-scheduler 来安排它的一些任务。调度程序在启动 Rails 应用程序的独角兽脚本的 after_fork 中初始化(参考:https ://gist.github.com/jkraemer/3851917 )。
最近,我遇到了一个场景,独角兽调度程序线程被杀死,而托管它的独角兽进程仍然处于活动状态。这会导致调度程序在没有通知的情况下停机很长时间。
我想设置一个警报和监控系统来处理这种应该能够: 1. 每当调度程序线程被终止/中止时抛出警报。2. 如果 Rails 进程正在运行,则重新启动调度程序。
通过 cron 任务和处理自动重启来了解调度程序的运行状态的合适方法是什么?
如果你引入一个 cron 任务来观察 rufus-scheduler,你为什么不简单地删除 rufus-scheduler 并使用When来进行所有的调度?因此,您将拥有 100% 的 crond 解决方案。
另一种选择,使用Foreman来管理 a) 您的 Rails 应用程序 b) 一个单独的进程来托管您的 rufus-scheduler 计划(它可能是您的 Rails 应用程序的“仅限计划”版本)(这是一篇博客文章中的一个很好的例子)。还有神。
如果您查看发条,这是一款受 rufus-scheduler 启发的宝石,它们详细介绍了这样一个应用程序/多个进程场景。
然后您可以查看各种工具来查看您的日志并在出现错误时提醒您。
更新:
也许这个要点可以帮助:https : //gist.github.com/jmettraux/5f716c8568f6ab7bb016a4bc11528bc2
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句