getting error Received unregistered task of type &

2020-08-17 17:53发布

问题:

I have written a file mytasks.py

from celery import Celery

celery = Celery("tasks",
                broker='redis://localhost:6379/0',
                backend='redis')


@celery.task
def add(x,y):
        return x+y

and task.py as follow

from mytasks import add

add.delay(1,1)

I have started redis server and I have started celery server. but when i m running task.py then i am getting the following error:

    Received unregistered task of type 'mytasks.add'.
The message has been ignored and discarded.

Did you remember to import the module containing this task?
Or maybe you are using relative imports?
Please see http://bit.ly/gLye1c for more information.

The full contents of the message body was:
{'retries': 0, 'task': 'mytasks.add', 'eta': None, 'args': (1, 1), 'expires': None, 'callbacks': None, 'errbacks': None, 'kwargs': {}, 'id': 'a4792308-d575-4de4-8b67-26982cae2fa4', 'utc': True} (173b)

Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/celery/worker/consumer.py", line 411, in on_task_received
    strategies[name](message, body, message.ack_log_error)
KeyError: 'mytasks.add'

what may be the possibel reason

回答1:

Hey I have solved the problem i did one thing i add

CELERY_IMPORTS=("mytasks")

in my celeryconfig.py file and i got succeed.



回答2:

also can use include param in Celery class: http://docs.celeryproject.org/en/latest/getting-started/next-steps.html#proj-celery-py



标签: redis celery