每隔几秒运行一次后台作业

use*_*426 3 ruby-on-rails delayed-job resque

假设我有一个需要从API中提取数据的应用程序,但是我发送查询的频率是有限的(即,X请求/分钟上限).为了确保我没有达到这个限制,我想将请求添加到队列,并有一个后台作业,它将拉动X请求并每分钟执行一次.但是,我不确定Rails中最好的方法是什么.从我收集的内容来看,DelayedJob是满足我需求的更好的库,但我没有看到任何支持只运行X作业一分钟.有谁知道是否有一种实现这样的功能的首选方式?

Abd*_*bdo 7

我有点迟了但是我想警告whenever你不要在你的情况下使用gem:因为你正在使用Ruby on Rails,所以每当gem在cron中被调用时,都会使用when gem来加载环境.

rufus-scheduler一试.

例如,将代码放在下面 config/initializers/cron_stuff.rb

require 'rufus/scheduler'

scheduler = Rufus::Scheduler.start_new

scheduler.every '20m' do
  puts 'hello'
end
Run Code Online (Sandbox Code Playgroud)