通过 NSSM 把 FastAPI+Celery+Flower 注册成 3个Windos 服务

通过 NSSM 把 FastAPI+Celery+Flower 注册成 3个Windos 服务

什么是 nssm?
是一个服务封装程序,它可以将普通exe程序封装成服务,实现开机自启动,同类型的工具还有微软自己的srvany,不过nssm更加简单易用,并且功能强大。nssm官网

nssm 常用命令

nssm install servername //创建servername服务,弹出配置界面
nssm start servername //启动服务
nssm stop servername //暂停服务
nssm restart servername //重新启动服务
nssm remove servername //删除创建的servername服务
nssm edit servername//更改servername服务,弹出修改界面
nssm set servername 参数名 参数值 //设置服务参数值

1. 启动 FastAPI 服务

需要使用下面的脚本startup.py,内容如下:

#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
"""
@ File        : startup.py
@ Author      : yqbao
@ Version     : V1.0.0
"""
import uvicorn

if __name__ == '__main__':
    config = uvicorn.Config('main:app', host='0.0.0.0', port=8888)
    server = uvicorn.Server(config)
    server.run()

nssm 配置,等同与命令python startup.py

Path:D:\Projects\verification-code-cracking-service\venv38\Scripts\python.exe
Startup directory:D:\Projects\verification-code-cracking-service
Arguments:startup.py
Service name:MyServiceFastAPI

image

2. 启动 Celery 服务

nssm 配置,等同与命令celery -A main.celery worker -l info -Q celery,user -P gevent -c 10

Path:D:\Projects\verification-code-cracking-service\venv38\Scripts\celery.exe
Startup directory:D:\Projects\verification-code-cracking-service
Arguments:-A main.celery worker -l info -Q celery,user -P gevent -c 10
Service name:MyServiceCelery

image
在 I/O 栏,可以将日志指定位置输出
image

3. 启动 Flower 服务

nssm 配置,等同与命令celery -A main.celery flower --port=5555

Path:D:\Projects\verification-code-cracking-service\venv38\Scripts\celery.exe
Startup directory:D:\Projects\verification-code-cracking-service
Arguments:-A main.celery flower --port=5555
Service name:MyServiceFlower

image
在 I/O 栏,可以将日志指定位置输出
image

nssm官网
本文章的原文地址
GitHub主页

posted @ 2024-09-18 16:09  星尘的博客  阅读(11)  评论(0编辑  收藏  举报