1
개발 중에는 5 스레드 (실행 한계로 인해 제한됨)가 예상되어 실행됩니다. 작업자가 수행해야하는 작업에 따라 5-7 프로세스가 실행될 때마다 평균 실행됩니다. 생산에sidekiq가 생산 중에 버스트로 실행됩니다.
, 그것은 다르게 동작 (때로는 작업자가 작동하지 않기로 결정한 것 객체 이후 몇 일 전에보다 적은 업데이트 된 작업중인) 아무 짓이나하지. 약 400의 버스트로 실행하는 것, 그리고 다음 immediatly 노동자를 다시 예약하고 조금 기다렸다가 버스트을 쏘고 다시
노동자가 페이스 북의 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
이 뭔가 알고있는 증상이다?
버스트가 발생하는 이유는 무엇입니까? 작업을 수행하는 스레드가 5 개 밖에없는 경우 어떻게 처리 할 수 있습니까? –