Rails帮助从rake文件创建delayed_job [英] Rails help creating a delayed_job from a rake file
问题描述
如何从rake文件创建延迟作业。我应该如何将它移动到控制器中,并创建一个每15分钟运行一次任务的delayed_job。
以下示例演示了我的rake文件:
namespace:reklamer do
task:runall => [:iqmedier,:euroads,:mikkelsen] do
#这将在所有这些任务运行完毕后运行
结束
任务:iqmedier => :environment do
需要'Mechanize'
agent = WWW :: Mechanize.new
agent.get(http://www.iqmedier.dk)
end
任务:euroads => :环境做
需要'机械化'
需要'pp'
代理= Mechanize.new {|代理|
结束
任务:mikkelsen => :environment do
需要'Mechanize'
agent = Mechanize.new
agent.get(http://affilate.mikkelsenmedia.dk/partnersystem/mylogins.php)
结束
结束
我应该更改为延迟作业(https:// github .com / collectiveidea / delayed_job)?
(泄露,我为公司工作。)
你创建你的工人(在app / worker中)然后在您的控制器和其他地方将它们排列起来,以便立即运行,或者只需几行代码就可以将它们安排在以后或经常使用的基础上。这里有一个基本的例子。
worker = ReportWorker.new
worker.user_id = @ current_user.id
worker。时间表(:start_at => 1.hours.since,:run_every => 900)
#或者立即运行一次
#worker.queue
ReportWorker类将包含用于为当前用户创建报告并发送或发布它所需的逻辑。
How do I create a delayed job from a rake file. How should I move it into a controller and create a delayed_job that runs the task every 15 minutes.
Here is an example how my rake file:
namespace :reklamer do
task :runall => [:iqmedier, :euroads, :mikkelsen] do
# This will run after all those tasks have run
end
task :iqmedier => :environment do
require 'Mechanize'
agent = WWW::Mechanize.new
agent.get("http://www.iqmedier.dk")
end
task :euroads => :environment do
require 'Mechanize'
require 'pp'
agent = Mechanize.new { |agent|
end
task :mikkelsen => :environment do
require 'Mechanize'
agent = Mechanize.new
agent.get("http://affilate.mikkelsenmedia.dk/partnersystem/mylogins.php")
end
end
What should I change to be a delayed job (https://github.com/collectiveidea/delayed_job)?
Suggest you take a look at SimpleWorker, a cloud-based background processing / worker queue for Ruby apps. It's designed for offloading tasks, running scheduled jobs, and scaling out to handle many parallel jobs at once. It's simple, affordable, and scalable.
(Disclosure, I work for the company.)
You create your workers (in app/worker) and then in your controllers and elsewhere queue them up to run right away or schedule them for later or on a recurring basis with just a few lines of code. Here's a basic example.
worker = ReportWorker.new worker.user_id = @current_user.id worker.schedule(:start_at => 1.hours.since, :run_every => 900) #Or to run once right away #worker.queue
The ReportWorker class would contain the logic to create the report for the current user and sent it or post it needed.
这篇关于Rails帮助从rake文件创建delayed_job的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!