43 lines
1.1 KiB
Ruby
43 lines
1.1 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
SIDEKIQ_ENABLED = ENV.key?('REDIS_SIDEKIQ_SENTINELS') || ENV.key?('REDIS_URL') || ENV['RAILS_QUEUE_ADAPTER'] == 'sidekiq'
|
|
|
|
return if !SIDEKIQ_ENABLED
|
|
|
|
sidekiq_redis = if ENV.key?('REDIS_SIDEKIQ_SENTINELS')
|
|
name = ENV.fetch('REDIS_SIDEKIQ_MASTER')
|
|
username = ENV.fetch('REDIS_SIDEKIQ_USERNAME')
|
|
password = ENV.fetch('REDIS_SIDEKIQ_PASSWORD')
|
|
sentinels = ENV.fetch('REDIS_SIDEKIQ_SENTINELS')
|
|
.split(',')
|
|
.map { URI.parse(_1) }
|
|
.map { { host: _1.host, port: _1.port, username:, password: } }
|
|
|
|
{
|
|
name:,
|
|
sentinels:,
|
|
username:,
|
|
password:,
|
|
role: :master
|
|
}
|
|
else
|
|
{} # default config from REDIS_URL
|
|
end
|
|
|
|
Sidekiq.configure_server do |config|
|
|
config.redis = sidekiq_redis
|
|
if ENV['PROMETHEUS_EXPORTER_ENABLED'] == 'enabled'
|
|
Yabeda.configure!
|
|
Yabeda::Prometheus::Exporter.start_metrics_server!
|
|
end
|
|
|
|
if ENV['SKIP_RELIABLE_FETCH'].blank?
|
|
config[:strict] = true
|
|
|
|
Sidekiq::ReliableFetch.setup_reliable_fetch!(config)
|
|
end
|
|
end
|
|
|
|
Sidekiq.configure_client do |config|
|
|
config.redis = sidekiq_redis
|
|
end
|