如何每 x 分钟执行一次 http 调用



我计划制作一个简单的服务监控应用程序,该应用程序具有Web界面,该界面将每x分钟对状态页面(每个服务)执行一次http调用,但是我无法弄清楚哪种策略是最好的。到目前为止,两个主要策略是:

  1. 执行具有睡眠状态的递归调用,或者
  2. 设置诸如when或clockwork之类的东西来评估运行器或耙子任务中的一些Ruby代码。

这两种策略似乎都不太有效,因为whenever必须为每个任务启动轨道环境,我认为睡眠阻塞。

任何建议将不胜感激。

我可以告诉你我对时间和发条的(一点)经验。

每当您设置任务(计划)并使用操作系统的 cron 作业来运行脚本时。

发条不需要 cron 作业,它在自己的 ruby 任务中运行,您还可以在自己的文件上配置发条。

我总是更喜欢 cron/own 任务解决方案。
使用递归调用方法,您可以使用与正常(生产)操作相同的日志文件,它可能会阻塞服务器(长时间运行的任务)并避免清理应用程序(实例关闭等)。您必须确定只有一个服务并行运行,依此类推... 。cron/作业解决方案在各个方面都更干净。

我正在使用发条,因为 ruby 在每个环境中都可用,您不必设置 cron 作业。但这是个人决定,如果您更喜欢 cron 工作,请使用它们:).

这两种策略似乎都不太有效,因为每当必须启动 每个任务的轨道环境

实际上,事实并非如此。 when可以独立于Rails使用,并且不会为每个任务启动Rails。 when将写入您的cron文件并让您的系统处理任务。 每当只是 cron 的 DSL。您可以随时使用,只需输入

whenever --update-crontab your_cron_name_here

我将重申每个人在这里所说的话,并说你想使用 cron。但是,如果您直接使用 cron 还是随时使用,则完全取决于您。我个人更喜欢任何时候,但这只是我。

最新更新