0

だから私は、サイトマップの宝石から私のサイトマップ:リフレッシュコマンドを実行するためにdelayed_jobsを取得しようとしています。ローカルの rake jobs:work に表示されない理由がわかりません。ターミナルで sitemap:refresh を実行すると、正常に実行され、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 jobs:work の私のワーカーでは機能しないように見える両方で置き換えrake sitemap:refreshてみました。system "sitemap:refresh"

4

1 に答える 1

0

解決した問題は、単に置き換える必要があることが判明しましrake sitemap:refreshRake::Task["sitemap:refresh"].execute

于 2013-01-23T20:32:05.263 に答える