如何为应该每15分钟运行一次的rake任务创建延迟作业?
你可以试试:https://github.com/defunkt/resque
我正在使用Resque + Redis与Heroku。他们的云服务也非常支持延迟作业。
在lib/任务/cron.rb
desc "This task is called by the Heroku cron add-on"
task :cron => :environment do
def resubmit_pending_jobs
Resque.enqueue(SomeJob, job.id)
end
end
我能想到的一种方法是使用Heroku提供的cron插件,它每小时(不是15分钟)做一次。也许上面的代码块可以帮助您找到延迟作业的类似实现。
如果你有兴趣用RedisToGo和Heroku安装Resque,请参考本指南。
希望有帮助!
看一下SimpleWorker。它是一个基于云的Ruby应用程序后台处理/工作队列。这是Heroku的附加组件。
您在代码中创建工作类,并将作业排队,以便立即运行或稍后运行——一次或在重复的计划中运行。
<>之前worker = SomeWorker.new设置worker在这里使用的属性工人。Schedule (:start_at => 1)。分钟,:run_every => 900)