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

это известный симптом для чего-то?

1 ответ

Решение

Похоже, что его душат, как и ожидалось.

Другие вопросы по тегам