django-celery-beat icon indicating copy to clipboard operation
django-celery-beat copied to clipboard

Fix for missing periodic task name in results

Open ntindicator opened this issue 1 year ago • 2 comments

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

ntindicator avatar Oct 08 '24 13:10 ntindicator

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.

codecov[bot] avatar Oct 10 '24 14:10 codecov[bot]

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)

cclauss avatar Oct 14 '24 14:10 cclauss

Thanks for your efforts

auvipy avatar Jan 12 '25 07:01 auvipy