ruby-on-rails - 每隔几秒运行一次后台作业

标签 ruby-on-rails delayed-job resque

假设我有一个应用程序需要从 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/

相关文章:

ruby-on-rails - ActiveRecord 改变了?标志不报告关联子项的更改

ruby-on-rails - rbenv 版本 2.2.1 未安装,即使它是

ruby - Heroku 上的 Resque Scheduler ......远程执行?

ruby-on-rails - form_for rails 4中的参数数量错误

ruby-on-rails - 在登台时引发禁用属性错误

ruby-on-rails - AsyncTask :Class 的未定义方法 `handle_asynchronously'

ruby-on-rails - 使用 delay_job 的 ActiveJob 不会在测试中创建 delay_jobs 行

ruby-on-rails - 如何使用 ActionController::Live 以及 Resque + Redis(用于聊天应用程序)

ruby-on-rails-3 - resque-scheduler 和重叠 crons