Files
awx/awx/main/scheduler/tasks.py
Ryan Petrello ff1e8cc356 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
2018-10-11 10:53:30 -04:00

26 lines
415 B
Python

# Python
import logging
# AWX
from awx.main.scheduler import TaskManager
from awx.main.dispatch.publish import task
logger = logging.getLogger('awx.main.scheduler')
@task()
def run_job_launch(job_id):
TaskManager().schedule()
@task()
def run_job_complete(job_id):
TaskManager().schedule()
@task()
def run_task_manager():
logger.debug("Running Tower task manager.")
TaskManager().schedule()