部署 服务器上的周期性任务大家都习惯用什么来实现呢?

adamshen · 2016年02月24日 · 最后由 jasl 回复于 2016年02月25日 · 3309 次阅读

是用 crontab 吗?

#1 楼 @vincent 很棒,谢谢,我就准备照着这样用了。

clockwork

sidekiq-cron gitlab 用的是这个

如果执行周期很频繁,比如每分钟执行一次,可以用 sidekiq-cron ,这样能避免频繁加载 rails 环境,提升效率。如果周期很长,我觉得还是用 crontab 比较好,干净独立,依赖少,不会有干扰。

固定周期的用 crontab 。如果” 周期性 “涉及到可编程逻辑(比如按不同 company 的本地时区来周期性计算)我还是用 background job 去处理。如果必须要用 Sidekiq 做周期性任务的话,sidetiq (不是 sidekiq) 这个 gem 可以看看。

个人不推荐把重要的周期性任务放到 crontab 里面,当有逻辑变更(周期性也变更)的时候因为非常容易忽略。还是用 sidekiq-cron gem 把周期性任务和整个项目结合在一起更整体一点

有用 resque + resque-scheduler 的么。。。

经过长时间被 sidekiq 内存问题的折磨,个人推荐:

  • 定时任务用 cron
  • 延时任务用 sidekiq
  • 一次性任务用 rake

whenever +1

我们在 docker 环境下用 clockwork,优点是以进程形式存在

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