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