| 123456789101112131415161718192021222324252627282930313233343536 |
- from django_rq.queues import get_connection
- from rq import Retry, Worker
- from netbox.config import get_config
- from netbox.constants import RQ_QUEUE_DEFAULT
- __all__ = (
- 'get_queue_for_model',
- 'get_rq_retry',
- 'get_workers_for_queue',
- )
- def get_queue_for_model(model):
- """
- Return the configured queue name for jobs associated with the given model.
- """
- return get_config().QUEUE_MAPPINGS.get(model, RQ_QUEUE_DEFAULT)
- def get_workers_for_queue(queue_name):
- """
- Returns True if a worker process is currently servicing the specified queue.
- """
- return Worker.count(get_connection(queue_name))
- def get_rq_retry():
- """
- If RQ_RETRY_MAX is defined and greater than zero, instantiate and return a Retry object to be
- used when queuing a job. Otherwise, return None.
- """
- retry_max = get_config().RQ_RETRY_MAX
- retry_interval = get_config().RQ_RETRY_INTERVAL
- if retry_max:
- return Retry(max=retry_max, interval=retry_interval)
|