Delayed_job + sitemap:刷新

时间:2013-01-20 18:26:17

标签: rake sitemap delayed-job

所以我试图让delayed_jobs运行我的站点地图:来自sitemap gem的刷新命令。不知道为什么它没有出现在我当地的佣金工作中:工作。如果我运行sitemap:在终端刷新它运行正常,delayed_jobs运行我所有其他rake任务。

在sitemap_refresh.rb

require 'sitemap_generator/tasks'
require 'delayed_job'
require 'delayed/tasks'

module Sitemap
  class Refresh
    def perform
      `rake sitemap:refresh`
    end
  end
end

在我的rakefile中调用它:

task :sitemap => :environment do
  load 'sitemap_refresh.rb'
  puts "Refreshing Sitemap"
  Delayed::Job.enqueue Sitemap::Refresh.new
  puts "Sitemap has been refreshed"

我也尝试用rake sitemap:refresh替换system "sitemap:refresh"这两个似乎都不适合我的工作人员从事佣金工作:工作。

1 个答案:

答案 0 :(得分:0)

解决了问题,只需将rake sitemap:refresh替换为Rake::Task["sitemap:refresh"].execute