芹菜工人和一个命令击败负载

Posted

技术标签:

【中文标题】芹菜工人和一个命令击败负载【英文标题】:Celery worker and beat load in one command 【发布时间】:2017-07-22 19:44:10 【问题描述】:

有没有办法启动 celery worker 并在一个命令中击败?我想用 Fabric 将 celery 添加到我的自动部署过程中。

我目前正在跑步:

celery -A prj worker -B

紧随其后

celery -A prj beat -l info -S django

但是,第一个命令会启动 worker,并且不允许运行下一个命令(开始节拍),因为会出现 worker 启动消息。

有没有办法避免出现启动消息?还是在一个命令中同时执行这两项操作?也许甚至有办法从我的 Django 配置开始这些?

谢谢!

【问题讨论】:

【参考方案1】:

Celery 允许您在同一进程中运行 worker 和 beat(主要用于开发目的)。查看celery worker的帮助:

> celery worker -h

...

Embedded Beat Options:
  -B, --beat            Also run the celery beat periodic task scheduler. Please note that there must only be
                        one instance of this service. .. note:: -B is meant to be used for development
                        purposes. For production environment, you need to start celery beat separately.
  -s SCHEDULE_FILENAME, --schedule-filename SCHEDULE_FILENAME, --schedule SCHEDULE_FILENAME
                        Path to the schedule database if running with the -B option. Defaults to celerybeat-
                        schedule. The extension ".db" may be appended to the filename. Apply optimization
                        profile. Supported: default, fair
  --scheduler SCHEDULER
                        Scheduler class to use. Default is celery.beat.PersistentScheduler

因此,组合命令(包括您对 django 调度程序的使用)将如下所示:

celery -A prj worker --beat --scheduler django --loglevel=info

【讨论】:

【参考方案2】:
celery -A proj worker -l info -B

【讨论】:

请始终将您的答案放在上下文中,而不仅仅是粘贴代码。有关详细信息,请参阅here。

以上是关于芹菜工人和一个命令击败负载的主要内容,如果未能解决你的问题,请参考以下文章

从多处理开始芹菜工人

如何停止芹菜工人进程

Flower UI 不显示芹菜工人和任务

芹菜工人并发

码头工人群或牧场牛中的芹菜工人

禁用八卦、交际和心跳对芹菜工人有啥后果?