1

開発中は、期待どおりに動作し、ワーカーが何かを行う必要があるかどうかに応じて、平均して約 5 ~ 7 のプロセスが実行されます (ワーカーが作業中のオブジェクトが更新されてから数日経っていないため、作業しないことを決定します)

発達

本番環境では、動作が異なります。約 400 のバーストで実行されているようで、すぐにワーカーのスケジュールを変更し、少し待ってから再びバーストを撃ちます。

ここに画像の説明を入力

ワーカーは facebook API (koala gem) で動作します。これには、sidekiq-throttler ( https://github.com/gevans/sidekiq-throttler )を使用します。

オプションで

sidekiq_options throttle: { threshold: 50, period: 60.seconds , key: ->(user_id){ "facebook:#{user_id}"}  }

procfileでherokuとredislabs(現時点では無料プラン)を使用しています

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

これは何かの既知の症状ですか?

4

1 に答える 1

1

予想通り、スロットルされているようです。

于 2014-09-24T15:25:15.383 に答える