0

所以我试图让delayed_jobs 从站点地图gem 运行我的站点地图:刷新命令。不知道为什么它没有出现在我当地的 rake 工作中:工作。如果我在终端中运行 sitemap:refresh 它运行良好,并且 delay_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"在我的 rake jobs:work 的工人身上不起作用。

4

1 回答 1

0

解决了问题原来只需要替换rake sitemap:refreshRake::Task["sitemap:refresh"].execute

于 2013-01-23T20:32:05.263 回答