2016-08-09 4 views
0

Я использую когда-либо для расписания работы с sidekiq. Кроме того, используйте sidekiq-client-cli gem, то есть клиент командной строки для sidekiq и позволяет заданиям cron взаимодействовать с sidekiq.Sidekiq With Whenever

Это моя активная работа файл:

# jobs/clone_record_job.rb 

class CloneRecordJob < ActiveJob::Base 
    queue_as :myapps 

    def perform(*args) 
     Core::Block.where(release_date: Date.today - 30.days).each do |block| 
     new_block = Core::Block.new(block.attributes) 
     new_block._id = BSON::ObjectId.new 
     new_block.save 
     end 
    end 
end 

файл расписания:

# config/schedule.rb 
job_type :sidekiq, "cd :path && :environment_variable=:environment bundle exec sidekiq-client -q myapps push :task :output" 

every 1.minute, :roles => [:app] do 
    sidekiq "CloneRecordJob" 
end 

Sidekiq войти:

2016-08-09T10:13:41.138Z 23668 TID-xvshg WARN: {"class":"CloneRecordJob","queue":"myapps","args":[],"retry":true,"jid":"98cb26a0dd7410a9be0f0200","created_at":1470737621.1380692,"enqueued_at":1470737621.1382036} 
2016-08-09T10:13:41.141Z 23668 TID-xvshg WARN: NoMethodError: undefined method `jid=' for #<CloneRecordJob:0x0000000715cc30> 

Примечание:

Я уверен, что работа работать, когда звонить из-под контроля Лер.

# example method 
def my_action 
    CloneRecordJob.perform_now 
end 

ответ

1

CloneRecordJob - это ActiveJob, а не Sidekiq :: Рабочий. Вы не можете использовать sidekiq-client-cli с ActiveJobs.

+0

О, я вижу. Я прочитал некоторые из wiki, и теперь я думаю, что мне нужен «Sidekiq :: Worker» для моего случая, например: 'HardWorker' class – itx