Fix for issue #376. The message broker Rabbitmq isn't picking up the periodic_task_name when it's passed as a keyword arg to task.apply_async() in django-celery-beat. If it's added to the headers in apply_async() it becomes available in the request object in django-celery-results. For this change to work the following commit also needs to be merged, otherwise it won't get passed by django-celery-beat.
If the task isn't triggered by django-celery-beat, but is done with code, such as using delay() or apply_async(), it will be missing, unless it's added to the headers in apply_async(). delay() doesn't support the extra options. E.g. When triggering a child task with delay() Periodic Task Name was missing in the Task Results.
These changes haven't been tested with Redis or any other message broker, only rabbitmq. CELERY_RESULT_EXTENDED was set to True in the settings.
Tested with:
celery==5.4.0
django-celery-beat==2.7.0
django-celery-results==2.5.1
Django==4.2.16
rabbitmq==4.0.2
Fix for issue #376. The message broker Rabbitmq isn't picking up the
periodic_task_name
when it's passed as a keyword arg totask.apply_async()
in django-celery-beat. If it's added to theheaders
inapply_async()
it becomes available in therequest
object in django-celery-results. For this change to work the following commit also needs to be merged, otherwise it won't get passed by django-celery-beat.If the task isn't triggered by django-celery-beat, but is done with code, such as using
delay()
orapply_async()
, it will be missing, unless it's added to the headers inapply_async()
. delay() doesn't support the extra options. E.g. When triggering a child task withdelay()
Periodic Task Name was missing in the Task Results.These changes haven't been tested with Redis or any other message broker, only rabbitmq.
CELERY_RESULT_EXTENDED
was set toTrue
in the settings. Tested with: celery==5.4.0 django-celery-beat==2.7.0 django-celery-results==2.5.1 Django==4.2.16 rabbitmq==4.0.2