celery-worker-setup
celery-worker
Роль для настройки конфигурации набора рабочих процессов Celery, за которыми следит systemd.
Каждый рабочий процесс должен быть описан через элементы, как показано ниже:
- app_name: 'MyApp' # (обязательно)
app_variable: 'my_app' # (по умолчанию: `celeryw_app_variable`)
celeryd_bin: '/usr/local/bin/celery' # (по умолчанию: `celeryw_bin`)
group: "adm" # (по умолчанию: `celeryw_`)
log_dir: # (по умолчанию: `celeryw_log_dir`)
log_filename: "%n%I" # (по умолчанию: `celeryw_log_filename`)
log_level: "INFO" # (по умолчанию: `celeryw_log_level`)
pid_filename: `%n-master.pid` # (по умолчанию: `celeryw_pid_filename`)
queues: `%n-master.pid` # (по умолчанию: `celeryw_queues`)
В основном, все переменные в разделе Переменные роли ниже могут быть переопределены для каждого рабочего процесса в элементе, описывающем его, через ключ с тем же именем (опуская префикс пространства имен роли). Единственными двумя исключениями являются переменные app_name
и app_module
, которые вы должны предоставить для каждого рабочего процесса, который вы определяете.
Требования
У этой роли нет требований.
Переменные роли
Все переменные в этой роли имеют префикс celeryw_
.
Значения по умолчанию
celeryw_app_variable
: переменная уровня модуля, которая хранит ссылку на Celery приложение (по умолчанию: "app");celeryw_bin
: путь к бинарному файлу Celery (по умолчанию: "/usr/bin/celery");celeryw_daemon_options
: дополнительные параметры, которые будут переданы как есть в командной строке Celery (по умолчанию: "");celeryw_etc_dir
: путь к каталогу, в котором будут храниться файлы конфигурации рабочих процессов Celery (по умолчанию: "/etc/celery");celeryw_group
: группа, в которой будут работать процессы Celery (по умолчанию:{{ansible_user_id}}
);celeryw_log_dir
: путь к каталогу, в котором будут храниться файлы журнала Celery (/var/log/celery
);celeryw_log_filename
: имя для использования для файлов журнала. Обратитесь к документации Celery, чтобы узнать больше о доступных шаблонах подстановки (по умолчанию:%n%I.log
);celeryw_log_level
: (по умолчанию:ERROR
);celeryw_pid_filename
:%n.pid
;celeryw_queues
: "celery";celeryw_run_dir
: путь, в котором будут храниться файлы PID Celery и т.п. (по умолчанию:/var/run/celery
);celeryw_user
: идентичность, под которой будут работать процессы Celery (по умолчанию:{{ansible_user_id}}
);celeryw_workers
: переменная, которая содержит список рабочих процессов для настройки (по умолчанию:[]
);
Переменные, предназначенные для других ролей
Нет
Зависимости
Для управления рабочими процессами Celery через systemd, эта роль зависит от роли cans.systemd-unit-install
.
Пример плейбука
Этот первый пример настроит рабочих процессов для двух приложений, в основном полагаясь на значения по умолчанию, предоставленные в роли:
- hosts: servers
roles:
- role: cans.celery-worker
celeryw_workers:
- app_name: "mailer"
app_module: "application.interfaces.tasks.mailer"
- app_name: "data-cruncher"
app_module: "application.interfaces.tasks.cruncher"
app_variable: "cruncher_app"
Этот второй пример переопределяет больше переменных, некоторые на глобальном уровне в разделе vars
плейбука, другие на уровне описания рабочего процесса:
- hosts: servers
vars:
celeryw_bin: "/opt/local/python-virtualenvs/python3.6/bin/celery"
roles:
- role: cans.celery-worker
celeryw_workers:
- app_name: "mailer"
app_module: "application.interfaces.tasks.mailer"
- app_name: "data-cruncher"
app_module: "application.interfaces.tasks.cruncher"
app_variable: "cruncher_app"
- app_name: "legacy-data-cruncher"
app_module: "legacy.interfaces.tasks.cruncher"
conf_dir: "/opt/local/etc/celery"
celery_bin: "/opt/local/python-virtualenvs/python2.5/bin/celery"
Вы также можете ознакомиться с плейбуком в каталоге test
для получения дополнительных примеров.
Лицензия
GPLv2
Информация об авторе
Copyright © 2017, Nicolas CANIART.
ansible-galaxy install cans/celery-worker-setup