diff --git a/roles/alts_flower/defaults/main.yml b/roles/alts_flower/defaults/main.yml index 9f424a1..8081447 100644 --- a/roles/alts_flower/defaults/main.yml +++ b/roles/alts_flower/defaults/main.yml @@ -11,3 +11,10 @@ flower_env_file: /etc/sysconfig/alts-flower flower_user: alts-mon # Must be set, Flower UI allows revoking tasks and controlling workers flower_password: "" +# Seconds after which offline workers are removed from the dashboard +flower_purge_offline_workers: 1800 +# Keep workers/tasks state across Flower restarts +flower_persistent: true +flower_db: /home/{{ test_system_user }}/flower_db +# Milliseconds between state saves; 0 saves only on clean shutdown +flower_state_save_interval: 60000 diff --git a/roles/alts_flower/templates/alts-flower.service.j2 b/roles/alts_flower/templates/alts-flower.service.j2 index 2ca51d1..00bf49a 100644 --- a/roles/alts_flower/templates/alts-flower.service.j2 +++ b/roles/alts_flower/templates/alts-flower.service.j2 @@ -10,7 +10,13 @@ EnvironmentFile={{ flower_env_file }} # Start through /bin/sh like alts-scheduler: under SELinux, systemd may not # execute binaries labelled as user home content directly ExecStart=/bin/sh -c 'exec {{ flower_venv_dir }}/bin/celery -A alts.worker.app flower \ - --port={{ flower_port }}' + --port={{ flower_port }} \ +{% if flower_persistent | bool %} + --persistent=True \ + --db={{ flower_db }} \ + --state_save_interval={{ flower_state_save_interval }} \ +{% endif %} + --purge_offline_workers={{ flower_purge_offline_workers }}' StandardOutput=append:{{ flower_log_dir }}/output.log StandardError=append:{{ flower_log_dir }}/error.log Restart=on-failure