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

时间:2014-01-08 00:52:54

标签: ruby

我打算制作一个简单的服务监控应用程序,该应用程序带有一个Web界面,每隔x分钟就会对一个状态页面(每个服务)执行一次http调用,但我无法确定哪个策略会做最好的。 到目前为止,两个主要策略是:

  1. 进行带睡眠的递归调用或
  2. 设置类似wheneverclockwork的内容,以评估转轮或佣金任务中的某些红宝石代码。
  3. 这两种策略似乎效率都不高,因为whenever必须为每项任务启动rails环境,我觉得睡眠阻塞。

    非常感谢任何建议。

2 个答案:

答案 0 :(得分:1)

我可以告诉你我的(小)经验,无论什么时候和发条。

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

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

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

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

答案 1 :(得分:0)

  

这两种策略似乎都没有效率,因为无论何时必须提高   每个任务的rails环境

实际上,事实并非如此。每当可以独立于轨道使用时,不会为每项任务旋转轨道。每当写入你的cron文件并让你的系统处理任务。无论何时只是cron的dsl。只需输入

即可随时使用

whenever --update-crontab your_cron_name_here

我要重申大家在这里说的话,并说你想用cron。但是,如果你直接使用cron或者完全取决于你。我个人更喜欢,但那只是我。