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.

О проекте

Setup celery workers managed by systemd

Установить
ansible-galaxy install cans/celery-worker-setup
Лицензия
gpl-2.0
Загрузки
132
Владелец