Skip to content
Snippets Groups Projects
Commit 36d1b596 authored by Erik Reid's avatar Erik Reid
Browse files

use sentinel to find master

parent 59f3543d
No related branches found
No related tags found
No related merge requests found
import json
from os import getenv
import logging
import os
import re
import redis.sentinel
logger = logging.getLogger(__name__)
broker_url = getenv(
'CELERY_BROKER_URL',
default='redis://test-dashboard02.geant.org:6379/1')
broker_hostname = os.getenv('BROKER_HOSTNAME')
assert broker_hostname is not None
broker_port = int(os.getenv('BROKER_PORT'))
broker_db_index = int(os.getenv('BROKER_DB_INDEX'))
broker_scheme = os.getenv('BROKER_SCHEME', 'redis')
assert broker_scheme in ('redis', 'sentinel'), 'unsupported broker scheme'
if broker_scheme == 'sentinel':
master_name = os.getenv('SENTINEL_MASTER_NAME')
assert master_name is not None
sentinel = redis.sentinel.Sentinel(
[(broker_hostname, broker_port)],
socket_timeout=0.1)
master = sentinel.discover_master(master_name)
assert master
broker_hostname = master[0]
broker_port = master[1]
if re.match('^[\d:]+$', broker_hostname):
# handle case where hostname is an ipv6 address
broker_hostname = '[%s]' % broker_hostname
broker_url = 'redis://%s:%d/%d' % (
broker_hostname, broker_port, broker_db_index)
result_backend = broker_url
if result_backend:
# bugfix workaround
result_backend = result_backend.split(';')[0]
tmp_options = getenv(
'BROKER_TRANSPORT_OPTIONS',
default='')
if tmp_options:
broker_transport_options = json.loads(tmp_options)
else:
broker_transport_options = {}
task_eager_propagates = True
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment