django项目redis. rabbitmq. celery. runserver三个启动后才能启动项目,celery启动报错,大坑如何填?

一、celery启动报错SyntaxError: invalid syntax:

celery直接升级到最新版,rabbitMQ升级到最新版。

注意:tasks.py文件开头要按下面代码编写:

from celery import Celery, task
from django.core.mail import send_mail
from .models import Order

app = Celery('tasks', broker='amqp://guest@localhost//')


@app.task
def order_created(order_id):

  

二、Celery ValueError: not enough values to unpack (expected 3, got 0)的解决方案:

pip --default-timeout=1000 install eventlet

三、celery报错TypeError: wrap_socket() got an unexpected keyword argument '_context':

启动服务器错误
requests包的requests.post发送后,传不回数据

改变服务器启动方法不要用eventlet,加个参数

celery  -A   celery.py所在文件夹名字  worker   --loglevel=info   --pool=solo
例如:celery  -A   myshop  worker   --loglevel=info   --pool=solo

注意:celery_task是celery.py所在文件夹的名字,注意修改

四、一定保证按照顺序

radis(在E: edis文件夹里,shift按住点击右键,当前窗口cmd,输入

E: edis>redis-server.exe redis.windows.conf

)、RabbitMQ、celery、runserver三个都要依次保持启动状态。

原文地址:https://www.cnblogs.com/tuobei/p/12526473.html