我想做个定时执行的任务,如果这个定时任务启动后,后台是怎么运行的?如果我想结束这个定时任务,该如何实现?
不知道楼主用的什么 gem。我项目里面用到的一个,是生成 crontab 的数据,实际的调用是 crontab 来进行的。 不需要时,直接 crontab 里面清除就行了。
楼主要 cron 的话推荐whenever这个 gem ,比系统的 crontab 可读性好很多
whenever
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 才是真正执行计划的....