2014-09-24 6 views
1

개발 중에는 5 스레드 (실행 한계로 인해 제한됨)가 예상되어 실행됩니다. 작업자가 수행해야하는 작업에 따라 5-7 프로세스가 실행될 때마다 평균 실행됩니다. 생산에sidekiq가 생산 중에 버스트로 실행됩니다.

development

, 그것은 다르게 동작 (때로는 작업자가 작동하지 않기로 결정한 것 객체 이후 몇 일 전에보다 적은 업데이트 된 작업중인) 아무 짓이나하지. 약 400의 버스트로 실행하는 것, 그리고 다음 immediatly 노동자를 다시 예약하고 조금 기다렸다가 버스트을 쏘고 다시

enter image description here 노동자가 페이스 북의 API (코알라 보석), 작업

이 I에있는 sidekiq-throttler procfile와 나는 (지금 무료로 계획을)에게 Heroku와 redislabs을 사용하고

sidekiq_options throttle: { threshold: 50, period: 60.seconds , key: ->(user_id){ "facebook:#{user_id}"} } 

옵션과 (https://github.com/gevans/sidekiq-throttler)

를 사용

web: bundle exec puma -C config/puma.rb 
worker: bundle exec sidekiq -c 5 

및 sidekiq 설정 :

Sidekiq.configure_server do |config| 
    config.redis = { :url => "#{ENV['REDISCLOUD_URL']}", :namespace => 'sidekiq'} 
    config.server_middleware do |chain| 
    chain.add Sidekiq::Throttler, storage: :redis 
    end 
end 

Sidekiq.configure_client do |config| 
    config.redis = { :url => "#{ENV['REDISCLOUD_URL']}", :namespace => 'sidekiq' } 
end 

이 뭔가 알고있는 증상이다?

답변

1

예상대로 조절되는 것처럼 보입니다.

+0

버스트가 발생하는 이유는 무엇입니까? 작업을 수행하는 스레드가 5 개 밖에없는 경우 어떻게 처리 할 수 ​​있습니까? –

관련 문제