服务器上如何永久启动celery

fiy 其他 126

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    要实现在服务器上永久启动Celery,可以采取以下步骤:

    1. 创建一个Celery的启动配置文件。
      在服务器上创建一个名为celeryconfig.py的文件,并在其中设置Celery的配置参数,例如:

      BROKER_URL = 'redis://localhost:6379/0'
      CELERY_RESULT_BACKEND = 'redis://localhost:6379/0'
      
      CELERY_IMPORTS = ('tasks',)
      CELERY_TASK_SERIALIZER = 'json'
      

      这里的BROKER_URLCELERY_RESULT_BACKEND是指定Celery使用的消息代理和结果存储的地址,可以根据具体情况进行修改。

    2. 创建一个systemd服务。
      在服务器上创建一个systemd服务文件,例如celery.service,并设置如下内容:

      [Unit]
      Description=Celery Service
      After=network.target
      
      [Service]
      User=<username>
      Group=<groupname>
      WorkingDirectory=<project_directory>
      ExecStart=/bin/sh -c 'exec celery -A <app> worker --loglevel=info -Q <queue>'
      
      [Install]
      WantedBy=default.target
      

      这里需要将<username>替换为运行Celery的用户,<groupname>替换为用户组,<project_directory>替换为项目所在的目录,<app>替换为Celery的应用程序,<queue>替换为要处理的队列。通过修改这些参数,适配您的具体情况。

    3. 移动配置文件和服务文件。
      celeryconfig.py文件移动到项目根目录下,并将celery.service文件移动到/etc/systemd/system/目录中。

    4. 启动服务并设置自启动。
      运行以下命令来启动服务并设置为开机自启动:

      systemctl start celery
      systemctl enable celery
      

    通过以上步骤,您就能够在服务器上永久启动Celery,并且设置为开机自启动。这样,您的Celery任务将可以在后台持续运行。

    1年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    要在服务器上永久启动Celery,您可以按照以下步骤进行操作:

    1. 安装和配置Celery:首先,您需要在服务器上安装和配置Celery。您可以使用pip命令安装Celery依赖项,创建Celery的配置文件,定义任务和消息队列。

    2. 创建启动脚本:为了实现永久运行,您可以创建一个启动脚本来启动Celery任务。您可以编写一个Shell脚本或者使用Systemd服务管理器来实现。以下是两种方法的示例:

      a. Shell脚本方式:创建一个启动脚本(例如start_celery.sh),并在其中使用celery命令启动Celery任务。您可以使用以下命令运行该脚本:

      $ sh start_celery.sh
      

      b. Systemd服务方式:使用Systemd服务管理器来创建一个服务配置文件(例如celery.service)。在该文件中,指定Celery任务的启动命令和其他配置信息。然后使用以下命令启动服务:

      $ systemctl start celery
      
    3. 设置自动启动:为了实现服务器重启后自动启动Celery,您可以将启动脚本添加到系统启动脚本中。例如,在Linux上,您可以将启动脚本添加到/etc/rc.local文件中。

    4. 监控和日志记录:在服务器上永久运行Celery时,您可能需要监控Celery任务的运行状况以及日志记录。您可以使用工具如Supervisor或Circus来实现监控和管理多个Celery任务。另外,您可以配置Celery日志记录,以便查看任务的详细信息和错误日志。

    5. 测试和调试:最后,您应该测试和调试服务器上的永久启动Celery。确保Celery任务正常运行并能够处理您的应用程序需要的工作负载。您还可以通过查看日志和监控任务的运行时间来进行调试和优化。

    总结起来,要在服务器上实现Celery的永久启动,您需要安装和配置Celery,创建启动脚本,设置自动启动,进行监控和日志记录,以及进行测试和调试。这样,您就能够确保Celery任务在服务器上始终运行并能够处理所需的工作负载。

    1年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    要在服务器上永久启动Celery,可以按照以下步骤完成。需要注意的是,以下步骤是针对Linux操作系统的,如果是其他操作系统,请针对具体操作系统进行相应调整。

    1. 创建一个服务脚本:
      首先,创建一个服务脚本,这个脚本将用于启动和停止Celery进程。在命令行中创建一个新的可执行文件,并使用任何文本编辑器打开它。

      $ sudo touch /etc/init.d/celery
      $ sudo chmod +x /etc/init.d/celery
      $ sudo nano /etc/init.d/celery
      

      在打开的编辑器中,将以下代码复制并粘贴到文件中:

      #!/bin/sh
      ### BEGIN INIT INFO
      # Provides:             celeryd
      # Required-Start:       $all
      # Required-Stop:        $all
      # Default-Start:        2 3 4 5
      # Default-Stop:         0 1 6
      # Short-Description:    celery task worker
      ### END INIT INFO
      
      set -e
      
      CELERY_BIN="/path/to/your/venv/bin/celery"
      CELERY_APP="your_project_name.celery:app"
      CELERY_USER="<your_username>"
      CELERY_GROUP="<your_groupname>"
      CELERY_LOG_DIR="/var/log/celery"
      CELERY_PID_DIR="/var/run/celery"
      
      export C_FORCE_ROOT="true"   # 将此行添加到允许root用户运行Celery
      
      start() {
          /sbin/start-stop-daemon --start --chdir /path/to/your/project \
              --pidfile $CELERY_PID_DIR/%n.pid --background --make-pidfile \
              --exec $CELERY_BIN -- \
              -A $CELERY_APP worker \
              --loglevel=info \
              --logfile=$CELERY_LOG_DIR/%n%I.log \
              --pidfile=$CELERY_PID_DIR/%n.pid
      }
      
      stop() {
          /sbin/start-stop-daemon --stop --retry=TERM/5/KILL/9 --pidfile $CELERY_PID_DIR/%n.pid --exec $CELERY_BIN
      }
      
      case "$1" in
          start)
              start
              ;;
      
          stop)
              stop
              ;;
      
          restart)
              stop
              start
              ;;
      
          *)
              echo "Usage: $0 {start|stop|restart}"
      esac
      
      exit 0
      

      需要将脚本中的以下部分进行相应修改:

      • CELERY_BIN:Celery可执行文件的绝对路径,通常位于虚拟环境中。
      • CELERY_APP:Celery应用的模块路径和应用实例名称。
      • CELERY_USERCELERY_GROUP:用于运行Celery的用户和组。
      • CELERY_LOG_DIR:用于存储Celery日志文件的目录。
      • CELERY_PID_DIR:用于存储Celery进程ID文件的目录。

      修改完毕后,保存并关闭文件。

    2. 添加自启动脚本:
      运行以下命令将服务脚本添加到系统的自启动脚本中:

      $ sudo update-rc.d celery defaults
      

      这将确保Celery在服务器启动时自动启动。

    3. 启动和停止Celery:
      现在,可以使用以下命令启动和停止Celery服务:

      $ sudo service celery start
      $ sudo service celery stop
      

      或者,您也可以使用以下命令重启Celery服务:

      $ sudo service celery restart
      

      执行以上命令即可启动、停止或重启Celery服务。

    以上是在服务器上永久启动Celery的方法和操作流程。通过创建一个服务脚本,并将其添加到系统的自启动脚本中,可以确保每次服务器启动时都会自动启动Celery,并且日志和进程ID文件将被正确管理。

    1年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部