有这样一段代码,需要每隔一段时间(比如 30s)执行一次 在 loop 中用 delay 时间精度不够 用 whenever 的话就还要新起一个 RUBY 进程,也不符合需求 clockwork 也是一样, 爬了下帖子,多数也是使用 whenever 这种,有没有什么办法能在代码中实现呢 比如
Timer.set(30s, def_wantoexcute) def wantoexcute() end
有 sidekiq,可以用 sidekiq 的定时运行工具。要不就直接用原生的 crontab
eventmachine
concurrent-ruby 有 TimerTask
也可以用 ActiveJob(默认的 adapter 好像就是 TimerTask,我记不清了。。)
还有 timers
rufus-scheduler