cans.celery-worker-setup

celery-worker

Rola do skonfigurowania zestawu pracowników Celery nadzorowanych przez systemd.

Każdy pracownik musi być opisany przez elementy, takie jak te poniżej:

- app_name: 'MyApp'                      # (wymagane)
  app_variable: 'my_app'                 # (domyślne: `celeryw_app_variable`)
  celeryd_bin: '/usr/local/bin/celery'   # (domyślne: `celeryw_bin`)
  group: "adm"                           # (domyślne: `celeryw_`)
  log_dir:                               # (domyślne: `celeryw_log_dir`)
  log_filename: "%n%I"                   # (domyślne: `celeryw_log_filename`)
  log_level: "INFO"                      # (domyślne: `celeryw_log_level`)
  pid_filename: `%n-master.pid`          # (domyślne: `celeryw_pid_filename`)
  queues: `%n-master.pid`                # (domyślne: `celeryw_queues`)

W zasadzie wszystkie zmienne w sekcji Zmienne roli poniżej mogą być nadpisane dla każdego pracownika, w elemencie opisującym pracownika, przez klucz o tej samej nazwie (opuszczając prefiks przestrzeni nazw roli). Jedynymi dwoma wyjątkami są zmienne app_name i app_module, które musisz podać dla każdego pracownika, którego definiujesz.

Wymagania

Ta rola nie ma wymagań.

Zmienne roli

Wszystkie zmienne w tej roli używają prefiksu celeryw_.

Domyślne

  • celeryw_app_variable: zmienna na poziomie modułu, która zawiera odniesienie do aplikacji celery (domyślne: "app");
  • celeryw_bin: ścieżka do pliku binarnego celery (domyślne: "/usr/bin/celery");
  • celeryw_daemon_options: dodatkowe opcje, które mają być przekazane tak jak są w wierszu poleceń celery (domyślne: "");
  • celeryw_etc_dir: ścieżka do katalogu, w którym przechowywane są pliki konfiguracyjne pracowników celery (domyślne: "/etc/celery");
  • celeryw_group: grupa, pod którą powinny działać procesy celery (domyślne: {{ansible_user_id}});
  • celeryw_log_dir: ścieżka do katalogu, w którym przechowywane są pliki logów celery (/var/log/celery);
  • celeryw_log_filename: nazwa używana dla plików logów. Zapoznaj się z dokumentacją celery, aby dowiedzieć się więcej o dostępnych substytucjach szablonu (domyślne: %n%I.log);
  • celeryw_log_level: (domyślne: ERROR);
  • celeryw_pid_filename: %n.pid;
  • celeryw_queues: "celery";
  • celeryw_run_dir: ścieżka, w której przechowywane są pliki PID celery itd. (domyślne: /var/run/celery);
  • celeryw_user: tożsamość, pod którą powinny działać procesy celery (domyślne: {{ansible_user_id}});
  • celeryw_workers: zmienna zawierająca listę pracowników do skonfigurowania (domyślne: []);

Zmienne przeznaczone dla innych ról

Brak

Zależności

Aby systemd mógł zarządzać pracownikami celery, ta rola zależy od roli cans.systemd-unit-install.

Przykład Playbooka

Ten pierwszy przykład skonfiguruje pracowników dla dwóch aplikacji, polegając głównie na domyślnych wartościach podanych w roli:

- 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"

Ten drugi przykład nadpisuje więcej zmiennych, niektóre na poziomie globalnym, w sekcji vars playbooka, inne na poziomie opisu pracownika:


- 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"

Możesz również zapoznać się z playbookiem znajdującym się w katalogu test, aby zobaczyć więcej przykładów.

Licencja

GPLv2

Informacje o autorze

Copyright © 2017, Nicolas CANIART.

O projekcie

Setup celery workers managed by systemd

Zainstaluj
ansible-galaxy install cans.celery-worker-setup
Licencja
gpl-2.0
Pobrania
147
Właściciel