先说解决方案:
Windows下运行celery的命令是这个celery -A djangoProject1 worker --concurrency=4 --loglevel=INFO -P threads
,也就是说要指定是多线程的
Linux下运行celery的命令是这个celery -A djangoProject1 worker --loglevel=INFO
比如这是我想要执行的函数,需要print一些东西:
@app.task
def my_task(x,y):
print("x=",x,",y=",y)
# f = open("123",mode='w')
# f.write("x")
# f.close()
print("任务开始执行")
time.sleep(20)
print("任务执行结束")
return x+y
这是我调用这个任务的函数代码:
# celery视图
def index(request):
x=my_task.delay(3,4)
return HttpResponse("<h1>服务器返回响应内容</h1>")
运行这个index函数后,终端并没有print,也就是my_task这个任务根本没有执行