假设我有一个应用程序需要从 API 中提取数据,但是我可以发送查询的频率有限制(即每分钟 X 个请求的上限)。为了确保我不会达到这个限制,我想将请求添加到队列中,并有一个后台作业将拉取 X 个请求并每分钟执行一次。但是,我不确定在 Rails 中最好的方法是什么。从我收集的信息来看,DelayedJob 是满足我需求的更好的库,但我没有看到对每分钟仅运行 X 个作业的任何支持。有谁知道是否有实现这样的功能的首选方式?
最佳答案
我有点晚了,但我想警告不要使用 whenever
你的情况下的 gem :
由于您使用的是 Ruby on Rails,因此每次在 cron 中调用时,都会使用每当 gem 加载环境。
给 rufus-scheduler
一试。
例如,将下面的代码放在 config/initializers/cron_stuff.rb
中
require 'rufus/scheduler'
scheduler = Rufus::Scheduler.start_new
scheduler.every '20m' do
puts 'hello'
end
关于ruby-on-rails - 每隔几秒运行一次后台作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22288926/