diff --git a/netbox/core/models/jobs.py b/netbox/core/models/jobs.py index 5caa9cc2d3b..39e2e522ad2 100644 --- a/netbox/core/models/jobs.py +++ b/netbox/core/models/jobs.py @@ -212,6 +212,7 @@ def enqueue( schedule_at=None, interval=None, immediate=False, + queue_name=None, **kwargs ): """ @@ -226,6 +227,8 @@ def enqueue( interval: Recurrence interval (in minutes) immediate: Run the job immediately without scheduling it in the background. Should be used for interactive management commands only. + queue_name: Specifies a target queue name for task scheduling. If omitted, + the system defaults to the predefined model queue.(optional) """ if schedule_at and immediate: raise ValueError(_("enqueue() cannot be called with values for both schedule_at and immediate.")) @@ -235,7 +238,7 @@ def enqueue( object_id = instance.pk else: object_type = object_id = None - rq_queue_name = get_queue_for_model(object_type.model if object_type else None) + rq_queue_name = queue_name if queue_name else get_queue_for_model(object_type.model if object_type else None) queue = django_rq.get_queue(rq_queue_name) status = JobStatusChoices.STATUS_SCHEDULED if schedule_at else JobStatusChoices.STATUS_PENDING job = Job(