1
在開發過程中,它按照我的預期運行,擁有5個線程(由於redis連接限制,目前受限),平均在大約5-7個進程運行,取決於工作人員必須做任何事情,或者沒有(有時工人會決定不工作,因爲對象是工作在比前幾天少更新)sidekiq在生產中突發運行
生產,它的行爲不同。它似乎在大約400脈衝時運行,然後立刻重新安排工作人員和等待了一下,然後拍攝了一陣又
工人與Facebook API(考拉寶石),工作這對於這一點,我使用sidekiq-調節器(https://github.com/gevans/sidekiq-throttler)
與
sidekiq_options throttle: { threshold: 50, period: 60.seconds , key: ->(user_id){ "facebook:#{user_id}"} }
我使用的Heroku和redislabs(目前免費計劃)與procfile選項
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個線程在工作,那麼如何處理400個? – 2014-09-24 16:07:13