152 lines
5.0 KiB
Plaintext
152 lines
5.0 KiB
Plaintext
; Notes:
|
|
; priority=1 --> Lower priorities indicate programs that start first and shut down last
|
|
; killasgroup=true --> send kill signal to child processes too
|
|
|
|
; graceful timeout should always be lower than stopwaitsecs to avoid orphan gunicorn workers.
|
|
[program:{{ bench_name }}-jingrow-web]
|
|
command={{ bench_dir }}/env/bin/gunicorn -b 127.0.0.1:{{ webserver_port }} -w {{ gunicorn_workers }} --max-requests {{ gunicorn_max_requests }} --max-requests-jitter {{ gunicorn_max_requests_jitter }} -t {{ http_timeout }} --graceful-timeout 30 jingrow.app:application --preload
|
|
priority=4
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/web.log
|
|
stderr_logfile={{ bench_dir }}/logs/web.error.log
|
|
stopwaitsecs=40
|
|
killasgroup=true
|
|
user={{ user }}
|
|
directory={{ sites_dir }}
|
|
startretries={{ supervisor_startretries }}
|
|
|
|
[program:{{ bench_name }}-jingrow-schedule]
|
|
command={{ bench_cmd }} schedule
|
|
priority=3
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/schedule.log
|
|
stderr_logfile={{ bench_dir }}/logs/schedule.error.log
|
|
user={{ user }}
|
|
directory={{ bench_dir }}
|
|
startretries={{ supervisor_startretries }}
|
|
|
|
{% if not multi_queue_consumption %}
|
|
[program:{{ bench_name }}-jingrow-default-worker]
|
|
command={{ bench_cmd }} worker --queue default
|
|
priority=4
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/worker.log
|
|
stderr_logfile={{ bench_dir }}/logs/worker.error.log
|
|
user={{ user }}
|
|
stopwaitsecs=1560
|
|
directory={{ bench_dir }}
|
|
killasgroup=true
|
|
numprocs={{ background_workers }}
|
|
process_name=%(program_name)s-%(process_num)d
|
|
startretries={{ supervisor_startretries }}
|
|
{% endif %}
|
|
|
|
[program:{{ bench_name }}-jingrow-short-worker]
|
|
command={{ bench_cmd }} worker --queue short{{',default' if multi_queue_consumption else ''}}
|
|
priority=4
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/worker.log
|
|
stderr_logfile={{ bench_dir }}/logs/worker.error.log
|
|
user={{ user }}
|
|
stopwaitsecs=360
|
|
directory={{ bench_dir }}
|
|
killasgroup=true
|
|
numprocs={{ background_workers }}
|
|
process_name=%(program_name)s-%(process_num)d
|
|
startretries={{ supervisor_startretries }}
|
|
|
|
[program:{{ bench_name }}-jingrow-long-worker]
|
|
command={{ bench_cmd }} worker --queue long{{',default,short' if multi_queue_consumption else ''}}
|
|
priority=4
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/worker.log
|
|
stderr_logfile={{ bench_dir }}/logs/worker.error.log
|
|
user={{ user }}
|
|
stopwaitsecs=1560
|
|
directory={{ bench_dir }}
|
|
killasgroup=true
|
|
numprocs={{ background_workers }}
|
|
process_name=%(program_name)s-%(process_num)d
|
|
startretries={{ supervisor_startretries }}
|
|
|
|
{% for worker_name, worker_details in workers.items() %}
|
|
[program:{{ bench_name }}-jingrow-{{ worker_name }}-worker]
|
|
command={{ bench_cmd }} worker --queue {{ worker_name }}
|
|
priority=4
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/worker.log
|
|
stderr_logfile={{ bench_dir }}/logs/worker.error.log
|
|
user={{ user }}
|
|
stopwaitsecs={{ worker_details["timeout"] }}
|
|
directory={{ bench_dir }}
|
|
killasgroup=true
|
|
numprocs={{ worker_details["background_workers"] or background_workers }}
|
|
process_name=%(program_name)s-%(process_num)d
|
|
startretries={{ supervisor_startretries }}
|
|
{% endfor %}
|
|
|
|
|
|
{% if not skip_redis %}
|
|
[program:{{ bench_name }}-redis-cache]
|
|
command={{ redis_server }} {{ redis_cache_config }}
|
|
priority=1
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/redis-cache.log
|
|
stderr_logfile={{ bench_dir }}/logs/redis-cache.error.log
|
|
user={{ user }}
|
|
directory={{ sites_dir }}
|
|
startretries={{ supervisor_startretries }}
|
|
|
|
[program:{{ bench_name }}-redis-queue]
|
|
command={{ redis_server }} {{ redis_queue_config }}
|
|
priority=1
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/redis-queue.log
|
|
stderr_logfile={{ bench_dir }}/logs/redis-queue.error.log
|
|
user={{ user }}
|
|
directory={{ sites_dir }}
|
|
startretries={{ supervisor_startretries }}
|
|
{% endif %}
|
|
|
|
{% if node %}
|
|
[program:{{ bench_name }}-node-socketio]
|
|
command={{ node }} {{ bench_dir }}/apps/jingrow/socketio.js
|
|
priority=4
|
|
autostart=true
|
|
autorestart=true
|
|
stdout_logfile={{ bench_dir }}/logs/node-socketio.log
|
|
stderr_logfile={{ bench_dir }}/logs/node-socketio.error.log
|
|
user={{ user }}
|
|
directory={{ bench_dir }}
|
|
startretries={{ supervisor_startretries }}
|
|
{% endif %}
|
|
|
|
[group:{{ bench_name }}-web]
|
|
programs={{ bench_name }}-jingrow-web {%- if node -%} ,{{ bench_name }}-node-socketio {%- endif%}
|
|
|
|
|
|
{% if multi_queue_consumption %}
|
|
|
|
[group:{{ bench_name }}-workers]
|
|
programs={{ bench_name }}-jingrow-schedule,{{ bench_name }}-jingrow-short-worker,{{ bench_name }}-jingrow-long-worker{%- for worker_name in workers -%},{{ bench_name }}-jingrow-{{ worker_name }}-worker{%- endfor %}
|
|
|
|
{% else %}
|
|
|
|
[group:{{ bench_name }}-workers]
|
|
programs={{ bench_name }}-jingrow-schedule,{{ bench_name }}-jingrow-default-worker,{{ bench_name }}-jingrow-short-worker,{{ bench_name }}-jingrow-long-worker{%- for worker_name in workers -%},{{ bench_name }}-jingrow-{{ worker_name }}-worker{%- endfor %}
|
|
|
|
{% endif %}
|
|
|
|
{% if not skip_redis %}
|
|
[group:{{ bench_name }}-redis]
|
|
programs={{ bench_name }}-redis-cache,{{ bench_name }}-redis-queue
|
|
{% endif %}
|