feat(core): Add queue_name parameter to Job.enqueue() method

- Added the queue_name parameter to Job.enqueue(), allowing users to specify an existing queue name.

- If queue_name is not provided, the default model queue will be used.

- This enhancement improves job scheduling flexibility by enabling targeted execution in specific queues.
This commit is contained in:
dianbofa 2025-05-07 19:23:13 +08:00
parent ab0a1f0bbc
commit 23d1213c9c

View File

@ -212,6 +212,7 @@ class Job(models.Model):
schedule_at=None,
interval=None,
immediate=False,
queue_name=None,
**kwargs
):
"""
@ -235,7 +236,7 @@ class Job(models.Model):
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(