Rails scheduler 是怎样在后台跑的?如何结束当前的定时任务?

tianshuai · 2012年05月03日 · 最后由 mimosa 回复于 2012年05月03日 · 5936 次阅读

我想做个定时执行的任务,如果这个定时任务启动后,后台是怎么运行的?如果我想结束这个定时任务,该如何实现?

不知道楼主用的什么 gem。我项目里面用到的一个,是生成 crontab 的数据,实际的调用是 crontab 来进行的。 不需要时,直接 crontab 里面清除就行了。

楼主要 cron 的话推荐whenever这个 gem ,比系统的 crontab 可读性好很多

https://github.com/javan/whenever

首页上有详细说明

就是 rufus-scheduler,现在又发现一个问题,如果开启一个定时任务,中途服务器重启或死机了,这个任务就失效了

rufus-scheduler 在使用中如果代码中有 exception 什么有时会令整个 sever 进程 down 掉

我以前用的 resque-scheduler,官方文档有你的这两个问题的答案

#2 楼 @aNdReW_Qx crontab 每次执行的时候 rake 任务总是要撑满 cpu,有没有遇到过? 另外好像每次 rake 完,passenger 都不会把 ruby 进程结束。

#6 楼 @stc cron 不从 web 进程启动,更 passenger 应该没关系,rake 某些任务的确很占 cpu,感觉也很正常

我也用 resque-scheduler 做定时任务,resque-scheduler 只是定时,resque workers 才是真正执行计划的....

需要 登录 后方可回复, 如果你还没有账号请 注册新账号