小编Ken*_*ris的帖子

在 Django 中使用 Celery 设置结果后端 (rpc)

我正在尝试让结果后端在我的本地机器上为我正在处理的项目工作,但我遇到了问题。

目前我正在尝试创建一个队列系统,以便我的实验室创建案例。这是为了防止使用重复的序列号。我已经在使用 Celery 进行打印,所以我想我会创建一个新的 Celery 队列并使用它来处理这个案例。前端还需要获取案例创建的结果以显示创建的案例编号。

http://docs.celeryproject.org/en/latest/getting-started/first-steps-with-celery.html#rabbitmq

我按照上面的教程来配置我的芹菜。下面是源码:

芹菜配置文件:

from kombu import Queue
CELERY_DEFAULT_QUEUE = 'celery'
CELERY_DEFAULT_EXCHANGE = 'celery'
CELERY_DEFAULT_EXCHANGE_TYPE = 'direct'
CELERY_RESULT_BACKEND = 'rpc://'
CELERY_RESULT_PERSISTENT = False

CELERY_QUEUES = (
    Queue('celery',    routing_key="celery"),
    Queue('case_creation',       routing_key='create.#')
)

CELERY_ROUTES = {
    'case.tasks.create_case': {
        'queue': 'case_creation',
        'routing_key': 'create.1'
    },
    'print.tasks.connect_and_serve': {
        'queue': 'celery',
        'routing_key': 'celery'
    }
}
Run Code Online (Sandbox Code Playgroud)

芹菜.py:

import os

from celery import Celery

from django.conf import settings
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'proj.settings.local')

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

app.config_from_object('proj.celeryconfig')
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)
Run Code Online (Sandbox Code Playgroud)

任务.py:

import celery
from django.db import …
Run Code Online (Sandbox Code Playgroud)

python django celery

4
推荐指数
1
解决办法
9145
查看次数

标签 统计

celery ×1

django ×1

python ×1