运行简单的任务来打印字符串,它冻结了总数,没有任何错误,一切都安装好了。
西芹启动,redis工作,运行时延迟西芹应用程序无打印。
但是在django runserver打印一次";2,2〃;
celery.py
from __future__ import absolute_import
import os
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'src.settings.local')
from django.conf import settings
from celery import Celery
app = Celery('src')
app.config_from_object('django.conf:settings')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
@app.task(bind=True)
def debug_task(self):
print("Request: {0!r}".format(self.request))
我的任务.py
import os
import datetime
from celery import Celery
from celery import shared_task
@shared_task
def testfunc():
print('EKHASGBDJHGASd')
return False
我的启动功能在视图
testfunc.delay()
芹菜工人找到了所有的任务,但当启动一些任务时,一切都冻结了,并且没有任何错误,芹菜工人相当。
我遇到了同样的问题,也许我的解决方案也适用于您。我发现我的问题出现在我的项目settings.py
中。首先,确保您在settings.py
:中正确定义了芹菜变量
CELERY_BROKER_URL = 'amqp://{}:{}@{}'.format(
CELERY_BROKER_USER,
CELERY_BROKER_PASS,
CELERY_BORKER_HOST
)
如果这个变量(CELERY_BROKER_URL
(定义正确,那么我认为你的问题是你的CELERY_BORKER_HOST
,如果你用错误的方式定义它(例如:CELERY_BROKER_HOST = "localhost:5673/"
而不是CELERY_BROKER_HOST = "localhost:5672/"
用于rabbitmq(,那么无论何时调用.delay()
,它都会冻结。