mirror of
https://github.com/ansible/awx.git
synced 2026-02-01 01:28:09 -03:30
replace celery task decorators with a kombu-based publisher
this commit implements the bulk of `awx-manage run_dispatcher`, a new command that binds to RabbitMQ via kombu and balances messages across a pool of workers that are similar to celeryd workers in spirit. Specifically, this includes: - a new decorator, `awx.main.dispatch.task`, which can be used to decorate functions or classes so that they can be designated as "Tasks" - support for fanout/broadcast tasks (at this point in time, only `conf.Setting` memcached flushes use this functionality) - support for job reaping - support for success/failure hooks for job runs (i.e., `handle_work_success` and `handle_work_error`) - support for auto scaling worker pool that scale processes up and down on demand - minimal support for RPC, such as status checks and pool recycle/reload
This commit is contained in:
@@ -12,7 +12,6 @@ services:
|
||||
- "8013:8013"
|
||||
- "8043:8043"
|
||||
- "1936:1936"
|
||||
- "5555:5555"
|
||||
- "15672:15672"
|
||||
awx_1:
|
||||
privileged: true
|
||||
|
||||
@@ -14,10 +14,9 @@ services:
|
||||
ports:
|
||||
- "8888:8888"
|
||||
- "8080:8080"
|
||||
- "5555:5555"
|
||||
- "8013:8013"
|
||||
- "8043:8043"
|
||||
- "6899-6999:6899-6999" # default port range for celery.contrib.rdb
|
||||
- "6899-6999:6899-6999" # default port range for sdb-listen
|
||||
links:
|
||||
- postgres
|
||||
- memcached
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
nginx: make nginx
|
||||
runworker: make runworker
|
||||
daphne: make daphne
|
||||
celeryd: make celeryd
|
||||
dispatcher: make dispatcher
|
||||
receiver: make receiver
|
||||
flower: make flower
|
||||
uwsgi: make uwsgi
|
||||
jupyter: make jupyter
|
||||
jupyter: make jupyter
|
||||
|
||||
@@ -22,11 +22,6 @@ frontend localnodes_ssl
|
||||
mode tcp
|
||||
default_backend nodes_ssl
|
||||
|
||||
frontend flower
|
||||
bind *:5555
|
||||
mode http
|
||||
default_backend flower_nodes
|
||||
|
||||
frontend rabbitctl
|
||||
bind *:15672
|
||||
mode http
|
||||
@@ -51,18 +46,6 @@ backend nodes_ssl
|
||||
server awx_2 awx_2:8043
|
||||
server awx_3 awx_3:8043
|
||||
|
||||
backend flower_nodes
|
||||
mode http
|
||||
balance roundrobin
|
||||
option forwardfor
|
||||
option http-pretend-keepalive
|
||||
http-request set-header X-Forwarded-Port %[dst_port]
|
||||
http-request add-header X-Forwarded-Proto https if { ssl_fc }
|
||||
#option httpchk HEAD / HTTP/1.1\r\nHost:localhost
|
||||
server awx_1 awx_1:5555
|
||||
server awx_2 awx_2:5555
|
||||
server awx_3 awx_3:5555
|
||||
|
||||
backend rabbitctl_nodes
|
||||
mode http
|
||||
balance roundrobin
|
||||
|
||||
@@ -3,8 +3,8 @@ umask = 022
|
||||
minfds = 4096
|
||||
nodaemon=true
|
||||
|
||||
[program:celeryd]
|
||||
command = celery worker -A awx -l DEBUG -B -Ofair --autoscale=100,4 -s /var/lib/awx/beat.db --pidfile /tmp/celery_pid
|
||||
[program:dispatcher]
|
||||
command = awx-manage run_dispatcher
|
||||
autostart = true
|
||||
autorestart = true
|
||||
redirect_stderr=true
|
||||
@@ -51,14 +51,6 @@ redirect_stderr=true
|
||||
stdout_logfile=/dev/fd/1
|
||||
stdout_logfile_maxbytes=0
|
||||
|
||||
[program:flower]
|
||||
command = make flower
|
||||
autostart = true
|
||||
autorestart = true
|
||||
redirect_stderr=true
|
||||
stdout_logfile=/dev/fd/1
|
||||
stdout_logfile_maxbytes=0
|
||||
|
||||
[program:jupyter]
|
||||
command = make jupyter
|
||||
autostart = true
|
||||
@@ -68,7 +60,7 @@ stdout_logfile=/dev/fd/1
|
||||
stdout_logfile_maxbytes=0
|
||||
|
||||
[group:awx-processes]
|
||||
programs=celeryd,receiver,runworker,uwsgi,daphne,nginx,flower
|
||||
programs=dispatcher,receiver,runworker,uwsgi,daphne,nginx
|
||||
priority=5
|
||||
|
||||
[unix_http_server]
|
||||
|
||||
Reference in New Issue
Block a user