Я пишу приложение, которое использует RQ для работы. Экземпляр Redis для RQ находится в Heroku, но работники RQ находятся на внешних машинах. Они устанавливают соединение Redis при запуске.
Если Heroku перемещает экземпляр Redis (что он может и делает), то рабочие оказываются в затруднительном положении, т. Е. С подключением к экземпляру Redis, который больше не существует, и без подключения к новому.
Я могу получить URL-адрес redis от heroku с помощью API, но как я могу заставить рабочих переподключиться?
Я подумываю получить URL-адрес Redis при запуске, затем создать фоновый поток, который пингует сервер Redis каждые N минут и завершается, когда он не может общаться с Redis.
Так как у меня будет монитор процесса (цирк, руководитель, что-то), он просто перезапустит работника.
Это разумно? Есть ли более распространенная лучшая практика для работы с RQ за пределами Heroku, но с экземпляром Redis внутри Heroku?
В этом отношении, похоже, что работники RQ на Heroku должны были решить эту же проблему.