我正在尝试让结果后端在我的本地机器上为我正在处理的项目工作,但我遇到了问题。
目前我正在尝试创建一个队列系统,以便我的实验室创建案例。这是为了防止使用重复的序列号。我已经在使用 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)