报错:
Did you remember to import the module containing this task?
Or maybe you're using relative imports?
Please see
http://docs.celeryq.org/en/latest/internals/protocol.html
for more information.
The full contents of the message body was:
b'[[], {}, {"callbacks": null, "errbacks": null, "chain": null, "chord": null}]' (77b)
Traceback (most recent call last):
File "d:\venv\lib\site-packages\celery\worker\consumer\consumer.py", line 555, in on_task_received
strategy = strategies[type_]
KeyError: 'terminal.tasks.add_order_and_other'
报这个错的原因是没有找到任务,要想让celery找到任务有两种方法
1.首先这里使用的是django+celery并不是djcelery。在settings同级下的view视图函数中导入tasks.py中的所有任务
from .task import add_data, add_course, add_order_and_other
(仅导入就行)(此法不建议使用,因为有点歪门邪道的感觉 哈哈哈哈)
2.在celery.py中添加app.autodiscover_tasks([‘terminal.tasks’]),terminal.tasks是任务文件所在的位置。
Tips:现在启动celery后如果关闭对应窗口celery定时任务会停止
使用celery multi start w1 -A 项目名 -B 启动celery后关闭窗口任务也不会停止定时任务,同时使用这个命令启动也不用在单独启动beat。