queue Error using djcelery
jeyrce opened this issue · comments
Jeyrce commented
while i use djcelery, error occured like this:
[2019-04-10 21:07:08,441: ERROR/MainProcess] Unrecoverable error: TypeError("__init__() missing 1 required positional argument: 'on_delete'",)
Traceback (most recent call last):
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/utils/__init__.py", line 323, in __get__
return obj.__dict__[self.__name__]
KeyError: 'Queue'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/celery/worker/__init__.py", line 206, in start
self.blueprint.start(self)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/celery/bootsteps.py", line 123, in start
step.start(parent)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/celery/bootsteps.py", line 374, in start
return self.obj.start()
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/celery/worker/consumer.py", line 280, in start
blueprint.start(self)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/celery/bootsteps.py", line 123, in start
step.start(parent)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/celery/worker/consumer.py", line 655, in start
c.connection, on_decode_error=c.on_decode_error,
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/celery/app/amqp.py", line 385, in __init__
**kw
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/messaging.py", line 364, in __init__
self.revive(self.channel)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/messaging.py", line 376, in revive
self.declare()
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/messaging.py", line 386, in declare
queue.declare()
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/entity.py", line 522, in declare
self.queue_declare(nowait, passive=False)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/entity.py", line 548, in queue_declare
nowait=nowait)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/transport/virtual/__init__.py", line 446, in queue_declare
self._new_queue(queue, **kwargs)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/transport/django/__init__.py", line 36, in _new_queue
self.Queue.objects.get_or_create(name=queue)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/utils/__init__.py", line 325, in __get__
value = obj.__dict__[self.__name__] = self.__get(obj)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/transport/django/__init__.py", line 66, in Queue
return symbol_by_name(self.queue_model)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/utils/__init__.py", line 96, in symbol_by_name
module = imp(module_name, package=package, **kwargs)
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/importlib/__init__.py", line 126, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 994, in _gcd_import
File "<frozen importlib._bootstrap>", line 971, in _find_and_load
File "<frozen importlib._bootstrap>", line 955, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 665, in _load_unlocked
File "<frozen importlib._bootstrap_external>", line 678, in exec_module
File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/transport/django/models.py", line 24, in <module>
class Message(models.Model):
File "/home/lujianxin/VirtualEnvs/ljx/lib/python3.6/site-packages/kombu/transport/django/models.py", line 29, in Message
queue = models.ForeignKey(Queue, related_name='messages')
TypeError: __init__() missing 1 required positional argument: 'on_delete'
it seems that it was because the orm model field queue set a ForeignKey, but did not obtain the param on_delete, is it not supported for django>2.0 ? if supported, where i can download
Asif Saif Uddin commented
you are using an unsupported version of django with this package. try django celery beats and django celery results package instead