python-3.x - 在 Celery 和 Django 中没有这样的带有 RabbitMQ 的传输 RPC
问题描述
Celery:4.3.0(大黄)和 Python 3.7 版本。
我尝试启动芹菜工人:
celery -A proj_name worker -l 信息
我收到以下错误:
KeyError: 'No such transport: rpc'
我在 Django 中的 celery 配置:
LATE_RETRY_QUEUE_NAME = 'late_retry'
FAIL_AUDIT_QUEUE_NAME = 'fail_audit'
# Celery configs
CELERY_BROKER_URL = 'rpc://guest:guest@localhost:5672'
CELERY_RESULT_BACKEND = 'rpc://guest:guest@localhost:5672'
CELERY_TASK_DEFAULT_QUEUE = 'default'
CELERY_QUEUES = {
Queue(LATE_RETRY_QUEUE_NAME, routing_key=LATE_RETRY_QUEUE_NAME),
Queue(FAIL_AUDIT_QUEUE_NAME, routing_key=FAIL_AUDIT_QUEUE_NAME)
}
Celery 配置是文档中的标准配置:
celery.py (/proj/proj_name/celery.py)
from __future__ import absolute_import, unicode_literals
import os
from celery import Celery
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj_name.settings')
app = Celery('proj_name')
app.config_from_object('django.conf:settings', namespace='CELERY')
# Load task modules from all registered Django app configs.
app.autodiscover_tasks()
@app.task(bind=True)
def debug_task(self):
print('Request: {0!r}'.format(self.request))
init .py (/proj/proj_name/ init .py) [忽略缺少的下划线,此处无法格式化]
from __future__ import absolute_import, unicode_literals
from .celery import app as celery_app
__all__ = ('celery_app',)
出了什么问题?
解决方案
推荐阅读
- java - 如何在应用程序启动时显示自定义对话框?
- angular - 使用 Subject 或 BehaviourSubject 通过服务提醒组件发生了什么事?
- javascript - 在 d3.js 中使用带有坐标的 json 文件创建多行
- java - 为什么我收到“无法启动新会话。可能的原因是远程服务器地址无效或浏览器启动失败。” 错误
- mean-stack - 保存更新的异步方法值
- node.js - 生成临时电子邮件地址并阅读电子邮件 - NodeJS
- django - 如何在 for 块中使用 jinja2 中的变量
- python-3.x - Python - 如何通过使用来自其他函数的数据来更改函数中声明变量的值
- google-apps-script - 在 Google 表格中记录收到的 Gmail 邮件
- ajax - 我很难将地图数据从 ajax 发送到 spring 控制器