我打算为Rails应用程序编写一个脚本,该应用程序将持续运行并需要访问ActiveRecord实例。
我已经研究过Sidekiq和Resque,但我不太确定哪种工具最适合这项工作(访问ActiveRecord并在主应用程序中异步地在后台运行)。
此外,在阅读了关于Sidekiq / Resque之后,我相信这两个解决方案可能对我想做的事情来说太重了(向ActiveRecord添加一些数据)。
有人有这方面的经验吗?
任何帮助或提示将不胜感激。感谢。
答案 0 :(得分:2)
我定义了一个运行rufus预定作业的类,我使用rake任务运行此类,然后使用foreman在Procfile中定义作业,并导出到upstart(http://michael.vanrooijen.io/articles/2011/06/08-managing-and-monitoring-your-ruby-application-with-foreman-and-upstart/)
class XXXX
def initialize
@scheduler = Rufus::Scheduler.start_new
end
def run
@scheduler.every '120s' do
#run code
end
@scheduler.join
end
end
task :rake_task => :environment do
require "class file path"
obj = XXXX.new
obj.run
end
在Procfile中
background_jobs: rake rake_task