如何让Ruby每10分钟运行一次任务?
问题描述:
我想每10分钟做一次cron作业,但我的系统只做了1小时。所以我正在寻找一种方法来做到这一点。我见过Timer
和sleep
,但我不确定如何做到这一点,甚至更好,但实现这一目标的资源。如何让Ruby每10分钟运行一次任务?
答
看看http://rufus.rubyforge.org/rufus-scheduler/
鲁弗斯调度是一个Ruby宝石调度的代码块(工种)。它了解在特定时间,某个时间,每x次或仅通过CRON语句执行工作。 rufus-scheduler不能替代cron/at,因为它运行在Ruby内部。
答
要做到这一点可靠,投资于VPS并根据需要创建10分钟的cron作业。试图独自模拟cron很可能会以无法预料的方式失败。
创建睡眠过程,是不是要走这个道路;如果你的服务器不允许你自由地创建你自己的cron,你可能无法为这类事情创建自己的后台进程。您可以根据每项请求查看并查看需要完成多少工作(如果是上次请求后的25分钟,则可能需要执行两次),然后返回并回溯处理。
不过,伤势严重。你需要你自己的服务器来可靠地做到这一点。
+0
没有理由重新实现车轮,尤其是考虑到广泛使用,稳健和成熟的cron。 +1 – 2010-08-21 18:27:14
你怎么会知道,当他们做跳舞? (http://en.wikipedia.org/wiki/Minuet) – JasonFruit 2010-08-21 18:12:42
有没有摄制组但本质上它在做什么是添加RSS源,并有一个“entries_total”的属性,得到更新并通知饲料的总数量越来越添加。 – s84 2010-08-21 18:23:05