2014-05-14 2 views
2

Rails 3.2 애플리케이션의 데이터를 원격 데이터베이스와 동기화하는 Sidekiq 작업자가 있습니다. 방금 레일 콘솔에서 실행하면 모든 것이 예상대로 작동합니다. 내가 원격 DB에 연결하고 내가 기대하는 데이터를 가져올 수 있는지 확인할 수 있습니다.Sidekiq 작업자가 Sidetiq와 페어링 할 때 대기열에 포함되지만 완료되지 않음

나는 다음과 같은 설정하려고 순간 :

2014-05-14T00:02:18Z 6747 TID-dvc2c INFO: [Sidetiq] Enqueue: BackendWorker (at: 1400112120.0) (last: -1.0) 

내가있어 재시도 false로 설정되어 있지 : 나는 Sidekiq에서 다음 만 완료/실행의 흔적을 볼

recurrence {daily.hour_of_day(20).minute_of_hour(02)} 

(내가 바꾸고 싶은) 현재, 나는 또 다른 테스트를 다시 시작하기 전에 redis로 무엇이든 지우려고했다.

어떤 일이 벌어지고 있는지에 대한 자세한 정보를 얻을 수있는 방법이 있습니까? 추가 디버그 정보를 얻는 데 사용할 수있는 Sidekiq 플래그가 있습니까? (3.0를 이용하여 문제로 인해)

  • 레일 3.2
  • 루비 2.1
  • Sidetiq 0.5.0
  • Sidekiq 2.17.7
  • :

    환경 미리

    감사

업데이트 (2014년 5월 14일는) :

나는 Sidetiq 간단한 예제를 테스트하기로 결정하고 단지 액티브와 DB 항목을 생성하는 노동자가 :

class BackendTest 
    include Sidekiq::Worker 
    include Sidetiq::Schedulable 
    sidekiq_options :retry => false, :backtrace => true 

    recurrence { 
    daily.hour_of_day(11).minute_of_hour(05) 
    } 

    def perform 
    Book.create(title: "test", author: "testing", price: 9.99) 
    end 
end 

내가 한 또 다른 실험이 단지되었다

class BackendTest 
    include Sidekiq::Worker 
    include Sidetiq::Schedulable 
    sidekiq_options :retry => false, :backtrace => true 

    recurrence { 
    daily.hour_of_day(16).minute_of_hour(00) 
    } 

    def perform 
    logger.info "test" 
    logger.info "test" 
    end 
end 

작업이 가만히 시작하거나 완료하지 않고 기본 큐를 입력 : Sidetiq 및 Sidekiq을 얻으려고 노력하는 것은 단지 logger.info 뭔가를 표시합니다. perform_async, Sidekiq::Client.pushSidekiq::Client.enqueue이 여전히 콘솔에서 작동하는 경우 레일 콘솔에서 꺼내면 모든 것이 여전히 작동합니다.

나는이 시점에서 완전히 혼란스러운 초보자입니다.

출력 :

2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: start 2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: test 2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: test 2014-05-14T20:08:41Z 2149 TID-dfcfk BackendTest JID-6bc7ba08955f8340903f9063 INFO: done: 0.002 sec

답변

2

GitHub의에 다른 사람의 프로젝트 주위에 파고 후, 나는 뭔가 흥미로운 것을보고 그것을 밖으로 시도하고 Sidetiq 내 문제를 해결하는 것 같았다.

나는 그것의 내부에 다음과 같은 내용으로 /config/initializers/sidekiq.rb을 만들어 :

Sidekiq.configure_server do |config| 
    config.redis = { :url => 'redis://localhost:6379/3', :namespace => 'sidekiq' } 
end 

Sidekiq.configure_client do |config| 
    config.redis = { :url => 'redis://localhost:6379/3', :namespace => 'sidekiq' } 
end 

작업 작업 대기열 예상대로 실행합니다.