mirror of
https://github.com/django-q2/django-q2.git
synced 2026-09-23 21:38:11 +08:00
Merge pull request #502 from telmobarros/master
Add broker name in Schedule and enhanced Queued Tasks list display admin
This commit is contained in:
@@ -99,6 +99,8 @@ class QueueAdmin(admin.ModelAdmin):
|
||||
def has_add_permission(self, request):
|
||||
"""Don't allow adds."""
|
||||
return False
|
||||
|
||||
list_filter = ("key",)
|
||||
|
||||
|
||||
admin.site.register(Schedule, ScheduleAdmin)
|
||||
|
||||
+6
-1
@@ -633,7 +633,12 @@ def scheduler(broker: Broker = None):
|
||||
)
|
||||
s.repeats += -1
|
||||
# send it to the cluster
|
||||
q_options["broker"] = broker
|
||||
scheduled_broker = broker
|
||||
try:
|
||||
scheduled_broker = get_broker(q_options["broker_name"])
|
||||
except: # invalid broker_name or non existing broker with broker_name
|
||||
pass
|
||||
q_options["broker"] = scheduled_broker
|
||||
q_options["group"] = q_options.get("group", s.name or s.id)
|
||||
kwargs["q_options"] = q_options
|
||||
s.task = django_q.tasks.async_task(s.func, *args, **kwargs)
|
||||
|
||||
+7
-1
@@ -28,10 +28,11 @@ You can manage them through the :ref:`admin_page` or directly from your code wit
|
||||
)
|
||||
|
||||
# In case you want to use q_options
|
||||
# Specify the broker by using the property broker_name in q_options
|
||||
schedule('math.sqrt',
|
||||
9,
|
||||
hook='hooks.print_result',
|
||||
q_options={'timeout': 30},
|
||||
q_options={'timeout': 30, 'broker_name': 'broker_1'},
|
||||
schedule_type=Schedule.HOURLY)
|
||||
|
||||
# Run a schedule every 5 minutes, starting at 6 today
|
||||
@@ -117,6 +118,11 @@ Reference
|
||||
:param datetime next_run: Next or first scheduled execution datetime.
|
||||
:param dict q_options: options passed to async_task for this schedule
|
||||
:param kwargs: optional keyword arguments for the scheduled function.
|
||||
|
||||
.. note::
|
||||
|
||||
q_options does not accept the 'broker' key with a broker instance but accepts a 'broker_name' key instead. This can be used to specify the broker connection name to assign the task. If a broker with the specified name does not exist or is not running at the moment of placing the task in queue it fallbacks to the random broker/queue that handled the schedule.
|
||||
|
||||
|
||||
.. class:: Schedule
|
||||
|
||||
|
||||
Reference in New Issue
Block a user