[Django]-Celery (Redis) results backend not working

11👍

My guess is that your problem is in the password.
Your password has @ in it, which could be interpreted as a divider between the user:pass and the host section.

The workers stay in pending because they could not connect to the broker correctly.
From celery’s documentation
http://docs.celeryproject.org/en/latest/userguide/tasks.html#pending

PENDING
Task is waiting for execution or unknown. Any task id that is not known is implied to be in the pending state.

3👍

I had a setup where the ‘single instance servers’ (the dev and locahost servers) were working, but not when the redis server was another server. The celery tasks were working correctly, but not the getting result. I was getting the following error just when trying to get the result of a task:

Error 111 connecting to localhost:6379. Connection refused.

What made it work was simply adding that setting to Django:

CELERY_RESULT_BACKEND = 'redis://10.10.10.10:6379/0'

It seems like if this parameter isn’t present, it’ll default to localhost to get the result of the tasks.

2👍

Adding CELERY_STORE_ERRORS_EVEN_IF_IGNORED = True to my settings resolved this problem for me.

Leave a comment