我想在凌晨3点每天在两个数据库之间运行同步ruby脚本(如果可能的话,在rails中执行)。将这些时间存储在数据库中会很好,因为如果同步失败我想将其设置为在一小时内再次尝试(并且在数据库中我可以轻松地将其更改为每天早上5点如果我我想,甚至其他管理员管理我的应用程序)。我想在我的Rails应用程序中的一个操作中使用该脚本,因此我可以在管理中创建一个页面,只需单击脚本将运行的链接(不必要,它可以在一个单独的Ruby文件中,该操作将最终调用,但将它作为专用控制器中的动作会更好,因为我将拥有许多类似这样的脚本,我只想在一个地方拥有类似的东西)。这有什么可能没有东西 - 我不知道 - 关于cron的任何事情吗?
答案 0 :(得分:7)
如果您不想直接与cron打交道,请查看whenever。它为编写cron作业提供了一个很好的语法:
every :hour do
runner "MyModel.do_something"
end
答案 1 :(得分:3)
您可以使用任务计划程序来执行此操作。
在Windows上,标准调度程序称为Task Scheduler。
在Linux上,标准调度程序称为cron。
两者都很简单易用。如果您正在编写Ruby代码,则可以安排任务。
例如,要使用cron
计划每天每小时运行的命令,请键入crontab -e
,然后添加以下行:
0 3 * * * /command/to/run
让它每小时运行一次,这样你就可以检查数据库,看它是否应该做一些事情:
0 * * * * /command/to/run