Для повышения устойчивости я преобразовал свое автономное развертывание Redis в кластер из трех часовых Redis. Я смог подключить Celery к настройке Redis Sentinel, изменив мою конфигурацию Celery так, чтобы она включала
BROKER_URL = 'sentinel://10.1.1.1:26379/0;sentinel://10.1.1.2:26379/0;sentinel://10.1.1.3:26379/0'
BROKER_TRANSPORT_OPTIONS = {'visibility_timeout': 32400, 'master_name': 'mymaster'}
. Ключом к подключению Celery было добавление BROKER_TRANSPORT_OPTIONS и определение master_name в том виде, в котором оно было установлено в моем redis config.
Я также использую Flower для мониторинга своих очередей Celery, выполнив что-то вроде этого:
celery flower --basic_auth=user1:pass123 --port=5555 --broker=redis://localhost:6379/0
Но теперь, когда у меня есть развертывание Redis Sentinel, я думаю, что мне нужен способ пройти варианты транспорта для него соединяются успешно, в противном случае, если я делаю это:
celery flower --basic_auth=user1:pass123 --port=5555 -b 'sentinel://10.1.1.1:26379/0;sentinel://10.1.1.2:26379/0;sentinel://10.1.1.3:26379/0' --debug
Он просто зависает:
[I 200427 13:01:36 command:139] Visit me at http://localhost:5555
[I 200427 13:01:36 command:144] Broker: sentinel://10.1.1.1:26379/0
[I 200427 13:01:36 command:147] Registered tasks:
[u'celery.accumulate',
u'celery.backend_cleanup',
u'celery.chain',
u'celery.chord',
u'celery.chord_unlock',
u'celery.chunks',
u'celery.group',
u'celery.map',
u'celery.starmap']
[D 200427 13:01:36 command:149] Settings: {'cookie_secret': 'W0UNu/+hQLCUYD2smFhIBMo9nrJqn0ZimgrxxroGeSI=',
'debug': True,
'login_url': '/login',
'static_path': '/usr/local/lib/python2.7/dist-packages/flower/static',
'static_url_prefix': '/static/',
'template_path': '/usr/local/lib/python2.7/dist-packages/flower/templates'}
[D 200427 13:01:36 control:29] Updating all worker's cache...
Я понимаю, что BROKER_TRANSPORT_OPTIONS это концепция сельдерея, а не цветок, я пытался опция --conf для передачи в config с конфигурацией TRANSPORT, но она, похоже, не подхватывает его.
Любая помощь по этому вопросу будет принята с благодарностью. Я проверил документацию по сельдерею и цветам, чтобы увидеть, как я могу решить эту проблему без удачи.