Хранение конфигурации в проектах Tornado и Celery
Я столкнулся с проблемой в проекте Tornado с использованием задач Celery.
Щас пользуюсь *.conf
файлы и tornado.options
разобрать их.tornado.options
разбирает конфигурационные файлы и командную строку.
Также есть сельдерей app
объект в проекте. Поэтому, когда я запускаю Celery Worker, он не знает о командной строке и файлах конфигурации, поэтому я получаю ошибки.
Вопрос в том, как сохранить конфигурацию, чтобы распределить ее между внутренними серверами и рабочими? Вопросы больше о вашем опыте и лучших практиках.
Я слышал о распределенных системах конфигурации, таких как etcd
, Полезно ли это для проектов Tornado/Celery?
1 ответ
Ты можешь использовать app.config_from_object(x)
настроить приложение Celery из существующего объекта. Затем вы можете настроить файл вашего приложения примерно так:
app = Celery("myappname")
tornado_config = get_tornado_config()
celery_config = tornado_config.celery
app.config_from_object(celery_config)
Например, храните настройки сельдерея внутри конфигурации торнадо и получайте к ним доступ. Тогда вам не нужно различать внутренние серверы и рабочих, по крайней мере, с точки зрения установки пакетов.