forked from tobi/delayed_job
-
Notifications
You must be signed in to change notification settings - Fork 956
Rake Task as a Delayed Job
GBH edited this page Aug 10, 2011
·
2 revisions
Here's an example how to trigger rake tasks with delayed_job. Create the following file and require it from the application.rb or environment.rb
# lib/delayed_rake.rb
class DelayedRake < Struct.new(:task, :options)
def perform
env_options = ''
options && options.stringify_keys!.each do |key, value|
env_options << " #{key.upcase}=#{value}"
end
system("cd #{Rails.root} && RAILS_ENV=#{Rails.env} bundle exec rake #{task} #{env_options} >> log/delayed_rake.log")
end
end
Then you can put it on the queue like so:
Delayed::Job.enqueue(DelayedRake.new("paperclip:refresh:metadata", :class => 'Avatar'))