首页 > 解决方案 > 从我的服务器每分钟运行一个 cron 作业是否有点矫枉过正?

问题描述

所以我有点困在这里,不知道该走哪条路。我的应用程序现在收到POST来自我们机器的请求,只要有一台机器出现故障,我们就称它们为警报。发布到我的服务器的一些问题具有特定的步骤,这些IT人必须遵循这些步骤才能解决机器问题。其中一些步骤是等待特定的时间,例如 15、30 或 60 分钟。在时间范围过去后,警报将移至下一步,依此类推,直到机器重新启动并运行。截至目前,我们正在setTimout()为每个等待时间的警报做一个,但问题是它发生在客户端,由于其中一些超时被重复,这导致了大量的开销。

显然,现在设置它的方式不是最佳的,也不是最合适的解决方案,所以我正在考虑从服务器端进行此检查。我的第一个想法是在服务器端设置超时,但是这种方法的一些问题是,如果服务器曾经停机或崩溃,这些超时将被删除。我的另一个想法是每分钟从服务器执行一次 cron 工作,以检查是否有任何警报已经过了等待时间,然后从那里更新警报。这将在服务器停机或崩溃并需要重新启动的情况下起作用,但我担心这对服务器来说太过分了。

我真的只是在这里寻找一些好的解决方案,因为我觉得我一直在决定我应该走哪条路线。我倾向于 cron 作业选项,但担心它会使服务器过载。

我不认为为 cron 作业创建超过 1 分钟的间隔会起作用,因为如果两个或多个警报在不同的时间出现,它们需要在它们启动后的 15、30 或 60 分钟后更新.

如果有人对我可以完成此任务的方式有任何建议,那将非常有帮助。谢谢!

标签: cron

解决方案


根据您描述的脚本的作用,每分钟运行一次的 cron 作业对服务器来说并不过分。但是,我建议您使用像supervisord. 您可以使用它生成工作人员,他们将在完成执行后自动重新启动。这样,每次检查之间的间隔更小,可靠性更高,因为您有多个工作人员进行检查。


推荐阅读