Хранение конфигурации в проектах 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)

Например, храните настройки сельдерея внутри конфигурации торнадо и получайте к ним доступ. Тогда вам не нужно различать внутренние серверы и рабочих, по крайней мере, с точки зрения установки пакетов.

Другие вопросы по тегам