【问题标题】: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 配置开始这些?

谢谢!

【问题讨论】:

    标签: celery django-celery celerybeat django-deployment


    【解决方案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
      猜你喜欢
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 2021-10-24
      • 2015-05-13
      • 2014-08-17
      • 2015-04-09
      • 2022-01-08
      • 2014-06-09
      相关资源
      最近更新 更多