celery启动异常: ERROR/MainProcess] consumer: Cannot connect to redis:
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了celery启动异常: ERROR/MainProcess] consumer: Cannot connect to redis:相关的知识,希望对你有一定的参考价值。
参考技术A 没反应应该是你启动服务端的时候没有带上配置文件。你可以./redis-server redis.conf你配置好了,但要重新启动redis,如果还是报一样的错误,很可能是没有启动到配置文件,所以需要真正的和配置文件启动需要:
在redis.conf文件的当前目录下
如果还是所某个端口已在使用,那么可能是有 后台程序在占用该端口,需要kill 掉该程序,重新带上配置文件。./redis-server redis.conf启动。
将含有”redis”关键词的进程杀死:
Celery 任务在 Django 测试中没有抛出异常
【中文标题】Celery 任务在 Django 测试中没有抛出异常【英文标题】:Celery tasks not throwing exception in Django Tests 【发布时间】:2015-01-17 17:35:07 【问题描述】:我的 Django 测试中包含了几个 celery 任务。不幸的是,通过 .delay() 调用任务时不会抛出异常。我将 CELERY_ALWAYS_EAGER 设置为 True。
tasks.py
import celeryapp as app
@app.task()
def exception_task():
print 'CELERY_ALWAYS_EAGER:', app.conf['CELERY_ALWAYS_EAGER']
raise Exception('foo')
tests.py
def test_exception_in_task(self):
from tasks import exception_task
exception_task.delay()
输出
CELERY_ALWAYS_EAGER: True
.
----------------------------------------------------------------------
Ran 1 test in 0.686s
当删除 .delay 时,测试退出并出现预期的错误:
ERROR: test_exception_in_task
Exception: foo
版本
celery==3.1.4
Django==1.6.4
【问题讨论】:
【参考方案1】:似乎我还必须将 CELERY_EAGER_PROPAGATES_EXCEPTIONS 设置为 True。
【讨论】:
这仍然适用于 Celery 5。【参考方案2】:在celery 4.0下,我不得不使用CELERY_TASK_EAGER_PROPAGATES
【讨论】:
以上是关于celery启动异常: ERROR/MainProcess] consumer: Cannot connect to redis:的主要内容,如果未能解决你的问题,请参考以下文章
Django:djcelery Import error from celery import current_app as celery in virtualenv