作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想从delayed_job 运行一个rake 任务(apn:notifications:deliver from the apn_on_rails gem)。换句话说,我想排队一个延迟的工作,它将调用 apn:notifications:deliver rake 任务。
我找到了这个代码 http://pastie.org/157390来自 http://geminstallthat.wordpress.com/2008/02/25/run-rake-tasks-with-delayedjob-dj/ .
我将此代码作为 DelayedRake.rb 添加到我的 lib 目录中:
require 'rake'
require 'fileutils'
class DelayedRake
def initialize(task, options = {})
@task = task
@options = options
end
##
# Called by Delayed::Job.
def perform
FileUtils.cd RAILS_ROOT
@rake = Rake::Application.new
Rake.application = @rake
### Load all the Rake Tasks.
Dir[ "./lib/tasks/**/*.rake" ].each { |ext| load ext }
@options.stringify_keys!.each do |key, value|
ENV[key] = value
end
begin
@rake[@task].invoke
rescue => e
RAILS_DEFAULT_LOGGER.error "[ERROR]: task \"#{@task}\" failed. #{e}"
end
end
end
最佳答案
为什么不只做一个系统调用?
system "rake apn:notifications:deliver"
关于ruby-on-rails - 如何从 delay_job 运行 rake 任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4183333/
我是一名优秀的程序员,十分优秀!