Fix for missing periodic task name in results
Fix for issue #376 in django-celery-results. The message broker rabbitmq isn't picking up periodic_task_name when it's passed as a keyword arg to task.apply_async(). 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 picked up in the results.
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
Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:
Project coverage is 87.22%. Comparing base (
78d3230) to head (62f0529). Report is 28 commits behind head on main.
Additional details and impacted files
@@ Coverage Diff @@
## main #812 +/- ##
==========================================
+ Coverage 86.92% 87.22% +0.29%
==========================================
Files 32 32
Lines 933 939 +6
Branches 124 76 -48
==========================================
+ Hits 811 819 +8
+ Misses 103 102 -1
+ Partials 19 18 -1
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
🚀 New features to boost your workflow:
- ❄ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
Linting errors in pre-commit:
flake8...................................................................Failed
- hook id: flake8
- exit code: 1
django_celery_beat/admin.py:252:9: E303 too many blank lines (2)
django_celery_beat/admin.py:254:59: E231 missing whitespace after ':'
django_celery_beat/admin.py:257:30: E128 continuation line under-indented for visual indent
django_celery_beat/admin.py:257:59: E231 missing whitespace after ':'
t/unit/test_schedulers.py:874:5: E303 too many blank lines (2)
t/unit/test_schedulers.py:879:80: E501 line too long (81 > 79 characters)
Thanks for your efforts