Python 用什么技术做后端服务比较好?

现在想在机器上写一个脚本,要求脚本能 24h 稳定运行,如果 crash 能自动重启。
如果单纯是写个阻塞程序待在那里肯定是不行的,服务可能会挂掉。
或者用 supervisor ?
各路大神有木有推荐的做法,怎么比较轻量,怎么稳定
Python 用什么技术做后端服务比较好?

13 回复

嗯 or docker restart:always


Flask或Django,看需求选。

简单说,选型就看你项目多大、多急。

Django 适合正经项目。它是个“全家桶”,自带Admin后台、ORM、用户认证、模板,啥都有。你按它的规矩来,能省很多造轮子的时间。文档全、社区大,出问题好解决。但东西多就重,不够灵活。

Flask 适合轻量、灵活的活儿。它是个“微框架”,核心就俩文件,路由、模板这些都得靠扩展。好处是你想怎么搭就怎么搭,数据库选SQLAlchemy还是Peewee随你便。适合API服务、小工具,或者你就是想自己掌控一切。

FastAPI 是现在的新宠,做API服务特快。它用Python的“类型提示”自动生成交互文档,性能也好。如果你主要做前后端分离的API,用这个很爽。

总结:要快、全、省事上Django;要轻、灵、自己掌控上Flask;纯API服务可以试试FastAPI。

提供一个思路,之前我在刷 12306 票的时候,用的是 celery beat 任务 + supervisor 监控,没挂过。不知道是不是符合你需求

uwsgi 一把梭。

supervisor

嗯 还有一种就是 docker 了

docker 可能未知原因的死掉,supervisor 也可能“假死”。还是看你的具体场景。既然是“脚本”是否是需要实时在线?是否可以定期执行?什么指标才是它真正存活的标志?它运行的介质是否随他本身的运行而变化,这个变化是否影响到它本身,等等等信息

systemctl?

cron 里挂个定时脚本,检测程序是否有在运行(比如之前保存在 /run 的 pid 或 ps 里的 command),运行是否正常(日志有输出,信号),然后退出。一旦异常则正常启动程序,并保存 pid 等相关信息。

supervisor 守护进程就可以的~

如果要守护进程,linux 自带 systemd 不用,用啥第三方的工具,
supervisor 的进程还是靠 systemd 来守护。。。

uwsgi + docker(跑。

systemd 系统级守护

回到顶部