Resque と ResqueScheduler を使用して、繰り返し発生するジョブをキューに入れます。私はレール 3.2.6、resque 1.21.0、resque-scheduler 2.0.0h を使用しています。
スケジューラーが開始されると、次のエラーが表示され、スケジュールタブを表示するのにも問題があります (ドコをたどった後):
rake resque:scheduler --trace ** resque:scheduler を呼び出します (first_time) ** resque:scheduler_setup を呼び出します (first_time) ** resque:scheduler_setup を実行します ** resque:setup を呼び出します (first_time) ** 環境を呼び出します (first_time) ** 実行します環境 ** resque:setup を実行 ** resque:scheduler を実行 2012-07-07 23:55:56 スケジュールをロード中 2012-07-07 23:55:56 -07-07 23:55:56 ロードされたスケジュール 2012-07-07 23:56:30 キュー テスト (run_database_copy) 2012-07-07 23:56:30 NoMethodError: ResqueScheduler::Plugin:Module の未定義のメソッド「run_before_delayed_enqueue_hooks」
resque_scheduler.yml
CancelAbandonedOrders:
cron: "*/5 * * * *"
run_database_copy:
cron: "30 * * * * *"
class: Testing
queue: testing_queue
args:
description: "Copy PinPro views to local tables"
testing.rb (ワーカー)
class Testing
@queue = :testing_queue
def self.perform
puts "Running Job!"
end
end
resque.rb
require 'resque_scheduler'
Resque.schedule = YAML.load_file(File.join(Rails.root, 'config/resque_scheduler.yml'))
resque_scheduler.rake
# Resque tasks
require 'resque/tasks'
require 'resque_scheduler/tasks'
require 'resque_scheduler/server'
task "resque:setup" => :environment
namespace :resque do
task :setup do
require 'resque'
require 'resque_scheduler'
require 'resque/scheduler'
require 'resque_scheduler/server'
# you probably already have this somewhere
Resque.redis = 'localhost:6379'
end
end
例/提案をいただければ幸いです。