芹菜与rabbitmq创建结果多个队列

 longyuyuyu 发布于 2023-02-05 10:37

我用RabbitMQ安装了Celery.问题是,对于返回的每个结果,Celery将在Rabbit中创建,在交换celeryresults中使用任务的ID进行排队.

我仍然希望得到结果,但是在一个队列上.

我的celeryconfig:

from datetime import timedelta
OKER_URL = 'amqp://'
CELERY_RESULT_BACKEND = 'amqp'
#CELERY_IGNORE_RESULT = True
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ACCEPT_CONTENT=['json', 'application/json']
CELERY_TIMEZONE = 'Europe/Oslo'
CELERY_ENABLE_UTC = True

from celery.schedules import crontab

CELERYBEAT_SCHEDULE = {
    'every-minute': {
        'task': 'tasks.remote',
        'schedule': timedelta(seconds=30),
        'args': (),
    },
}

那可能吗?怎么样?

谢谢!

2 个回答
  • 没什么不寻常的.

    这就是当我们使用amqp作为结果后端时celery的工作方式.它将为与工作者消耗的每个任务相对应的每个结果创建一个新的临时队列.

    如果您对结果不感兴趣,可以尝试CELERY_IGNORE_RESULT = True设置

    如果你确实想存储结果,那么我建议使用像Redis这样的不同结果后端.

    2023-02-05 10:40 回答
  • amqp后端为每个任务创建一个新队列.或者,有一个新的rpc后端,它将结果保存在一个队列中.

    http://docs.celeryproject.org/en/master/whatsnew-3.1.html#new-rpc-result-backend

    2023-02-05 10:40 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有