我有两种任务: 类型1-几个高优先级的小任务. 类型2-大量优先级较低的繁重任务.

最初,我使用默认路由进行简单配置,没有使用路由键.这是不够的-有时所有员工都忙于类型2任务,因此任务1被延迟. 我已经添加了路由密钥:

CELERY_DEFAULT_QUEUE = "default"
CELERY_QUEUES = {
    "default": {
        "binding_key": "task.#",
    },
    "highs": {
        "binding_key": "starter.#",
    },
}
CELERY_DEFAULT_EXCHANGE = "tasks"
CELERY_DEFAULT_EXCHANGE_TYPE = "topic"
CELERY_DEFAULT_ROUTING_KEY = "task.default"

CELERY_ROUTES = {
        "search.starter.start": {
            "queue": "highs",
            "routing_key": "starter.starter",
        },
}

因此,现在我有2个队列-具有高优先级和低优先级任务.

Problem is-如何使用不同的并发设置启动2个celeryd?

以前Celery 是在守护进程模式下使用的(根据to this),所以只需要从/etc/init.d/celeryd start开始,但现在我必须运行2个不同的celeryd,具有不同的队列和并发性.我该怎么做呢?

推荐答案

似乎答案——Celery 多——目前还没有很好的记录.

我所需要的可以通过以下命令来完成:

celeryd-multi start 2 -Q:1 default -Q:2 starters -c:1 5 -c:2 3 --loglevel=INFO --pidfile=/var/run/celery/${USER}%n.pid --logfile=/var/log/celeryd.${USER}%n.log

我们要做的是启动两个Worker,它们正在侦听不同并发性的队列(-Q:1为默认值,Q:2为启动器)-c:15-c:23

Django相关问答推荐

如何在Django上创建ManyToMany管理面板?

django-filter compose 过滤的 url

如何自动删除 Django 模型中的字段值?

Django多对多关系报错:<title> object (None)>需要先设置id字段的值.

自定义身份验证 django

如何在Django中制作一个不 Select 以前日期的日期 Select 器

如何根据反向外键相关模型的字段过滤 QuerySet?

Django REST Framework 图片上传

Django基于类的视图上的success_url的反向抱怨循环导入

Django Blob 模型字段

在生产中使用 Django 中的 SQLite?

在 django web 应用程序中,如何给用户自己的子域?

django excel xlwt

使用 Python / Django 的 Google API 示例的 Oauth

带有消息判断的 Django/Python assertRaises

使用 Django 1.5 实现多种用户类型

django-rest-framework 接受 JSON 数据?

django 应用基于条件的样式类

django-getlist()

BASE DIR 的绝对路径是什么?