cameronmaske / celery-once

Celery Once allows you to prevent multiple execution and queuing of celery tasks.
https://pypi.python.org/pypi/celery_once/
BSD 2-Clause "Simplified" License
662 stars 90 forks source link

Retry always fails #37

Closed lackita closed 7 years ago

lackita commented 8 years ago

When .retry is called, the state of the task becomes such that after_return is not called. This is probably correct on some level, since retrying means a new version will be queued. Unfortunately, the requeue doesn't happen because it attempts to reacquire the lock, leaving a lock in redis for a task not in any queue.

coveralls commented 8 years ago

Coverage Status

Coverage increased (+0.02%) to 98.131% when pulling 2e5677e8b2b56cc907d228b214255a76afd99613 on lackita:retry-always-fails into 104f2c5c7579909db2d68d81d836a7727964470b on TrackMaven:master.

cameronmaske commented 7 years ago

@lackita Great catch, had no idea apply_aysnc is re-called when retrying a task. Also, apologises for insane delay in getting to this PR, I've feel out of sync maintaining this project big time. With the new 1.0 release, I've ported your work to #48 and will get it released shortly to pypi.

Thanks again for the PR.

cameronmaske commented 7 years ago

This is released.