[英]Run a background job every few seconds
假设我有一个需要从API中提取数据的应用程序,但是我发送查询的频率是有限的(即,X请求/分钟上限)。 为了确保我没有达到这个限制,我想将请求添加到队列,并有一个后台作业,它将拉动X请求并每分钟执行一次。 但是,我不确定Rails中最好的方法是什么。 从我收集的内容来看,DelayedJob是满足我需求的更好的库,但我没有看到任何支持只运行X作业一分钟。 有谁知道是否有一种实现这样的功能的首选方式?
我有点迟了但是我想警告你不要在你的情况下使用whenever
宝石:因为你正在使用Ruby on Rails,每次使用时,gem都会在cron中调用它时加载环境。
尝试使用rufus-scheduler
。
例如,将代码放在config/initializers/cron_stuff.rb
require 'rufus/scheduler'
scheduler = Rufus::Scheduler.start_new
scheduler.every '20m' do
puts 'hello'
end
也许你可以尝试[随时]: https : //github.com/javan/whenever
然后您可以添加以下任务:
every 3.hours do
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
在schedule.rb文件中
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.