2013-07-24 1 views
1

레일스 앱이 시작될 때 사이드 키 큐에 작업을 추가해야 데이터를 업데이트 할 수 있지만 어디에서 가장 적합한 작업인지 알 수 없습니다. 지금 Rails 앱에서 Queue Sidekiq 작업 시작

, 나는에 쓴 한 내 application.rb :

class Application < Rails::Application 
    config.after_initialize do 
     MyWorker.perform_async 
    end 
end 

그러나 문제는 내가 sidekiq 명령을 실행할 때 그것은 또한 레일 스택을로드합니다, 그래서이 될 겁니다이다 대기열의 작업.

다른 방법이 있습니까? 이것은 내 첫 번째 큰 레일 애플 리케이션 및 Sidekiq 처음으로, 그래서 내가 제대로 일을 이해하지 않는지 모르겠다. 그것은 그렇게하는 올바른 방법이 아닐 수도 있습니다.

감사합니다.

답변

4

더 나은 솔루션 레디 스 연결과 여러 작업/시작되는 승 우리는 문제가 있었다 config/initializers/sidekiq.rb

Sidekiq.configure_client do |config| 
    Rails.application.config.after_initialize do 
     # You code goes here 
    end 
end 
2

아마도 foreman 목적에 맞는 것입니다.

2

이니셜 라이저를 생성하는 것입니다.

나는이를 사용하여 결국 그것은 잘 작동하는 것 같군 :

if defined?(Sidekiq) 
    Sidekiq.configure_server do |config| 
    config.on(:startup) do 
     already_scheduled = Sidekiq::ScheduledSet.new.any? {|job| job.klass == "MyWorker" } 
     MyWorker.perform_async unless already_scheduled 
    end 
    end 
end 
관련 문제