Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix for missing periodic task name in results #812

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

ntindicator
Copy link

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

Copy link
Member

@Nusnus Nusnus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it possible to add unit tests please?

Copy link

codecov bot commented Oct 10, 2024

Codecov Report

All modified and coverable lines are covered by tests ✅

Project coverage is 86.83%. Comparing base (78d3230) to head (9be2125).
Report is 3 commits behind head on main.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #812      +/-   ##
==========================================
- Coverage   86.92%   86.83%   -0.10%     
==========================================
  Files          32       32              
  Lines         933      934       +1     
  Branches      124       74      -50     
==========================================
  Hits          811      811              
- Misses        103      105       +2     
+ Partials       19       18       -1     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@cclauss
Copy link
Contributor

cclauss commented Oct 14, 2024

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)

Copy link
Member

@auvipy auvipy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@auvipy auvipy requested a review from Nusnus October 23, 2024 11:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants