Sidekiq работает на производстве
В процессе разработки он работает так, как я и ожидал, имея 5 потоков (ограниченных на данный момент из-за ограничения на повторное подключение), в среднем он выполняет около 5-7 запущенных процессов, в зависимости от того, должен ли работник что-то делать или нет (иногда рабочий будет решили не работать, так как объект, над которым он работает, был обновлен меньше, чем несколько дней назад)
на производстве ведет себя по-разному. Кажется, что он работает очередями по 400 человек, а затем немедленно меняет график работы рабочих, немного ждет, а затем снова выстреливает
Рабочие работают с Facebook API (коала Gem), который для этого я использую Sidekiq-throttler ( 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
это известный симптом для чего-то?