Recheck that dup task is actually running
This might be done with AsyncResult(existing_task_id).ready().
This is probably a bug if it doesn't work Should be no difference between AsyncResult here and with normal celery.
What's the result of this now and is it different from a standard celery task?
Now, there is no recheck. I thought that might help if worker crashed.
Ah I see what you mean, to check for zombie locks?
This still returns "pending" for unknown task IDs, right? So we still don't know whether it's queued or not.
Hmm, maybe I'm not familiar enough with this part of celery. So the is no way to fix this only expiry thing?
There's not really a reliable way to do this that I know.
You can use celery signals to set a custom state instead of "pending" when the task is actually sent to the broker, and say if task is "pending" it doesn't exist.
But that doesn't guarantee much as you would still get "pending if the check happens sometime in between sending the first task and updating the state.
If you can't really do that then this might be closed.