我想每10分钟做一次cron工作,但我的系统只做1小时。所以我正在寻找一种方法来做到这一点。我见过Timer
和sleep
,但我不知道如何做到这一点,甚至更好地实现这一目标。
答案 0 :(得分:4)
查看http://rufus.rubyforge.org/rufus-scheduler/
rufus-scheduler是一个用于安排代码片段(作业)的Ruby gem。它了解在某个时间,在某个时间,每个x时间或仅通过CRON语句运行作业。 rufus-scheduler不能代替cron / at,因为它在Ruby内部运行。
答案 1 :(得分:2)
为了可靠地执行此操作,请投资VPS并根据需要创建10分钟的cron作业。试图自己模仿cron很可能会以不可预见的方式失败。
创建一个休眠过程不是解决这个问题的方法;如果你的服务器不能让你自由地按自己的意愿制作自己的cron,那么你可能也无法为这类事情创建自己的后台进程。您可以在每个请求中查看需要完成的工作数量(如果自上次请求起25分钟后,您可能需要执行两次),然后返回并追溯执行。
但是,说真的。您需要自己的服务器才能可靠地完成此任务。