如何在 flask web 服务器上自动运行一个脚本

2017-04-21 13:35:18 +08:00
 mzmxcvbn

想做一个工业数据监控的 B/S 系统,服务器定时采集底下硬件的数据,用户可以通过浏览器访问服务器看到实时数据。现在 flask 服务器架好了,底下数据采集的 py 脚本也写好了,但我不知道如何能让服务器一启动就一直运行那个定时采集数据的脚本,然后这个采集上来的数据应该怎么传递?

6626 次点击
所在节点    Flask
24 条回复
freestyle
2017-04-22 00:10:06 +08:00
Windows 的话写个 bat/vbs 放开始菜单启动文件夹 Linux 的话选择就多了 楼上的都可以 crontab celery apscheduler

另外实时显示数据用 websocket 优于轮询
TJT
2017-04-22 00:31:35 +08:00
apscheduler +1 , uwsgi 记得加 enable-threads ,我现在就是这么干的
mlyy
2017-04-22 00:38:14 +08:00
@mzmxcvbn 按你的意思,我只需要客户端发 request 的时候能 response 那个时刻的真值? app.before_request 。如果采集速度够快这样就行。采集速度慢的话, celery 之类的后台挂个 beat ,一直写到数据库之类的地方,你 request 的时候去数据库拿就行(既然采集有延迟,我的理解数据有一点延迟没关系)
lalalakakaka
2017-04-22 01:51:57 +08:00
居然做了和楼主同样的事情。
而且我懒得学新东西,不想引进去一大堆依赖库,搞的在内网机器很难部署
我的办法是手写了个守护进程( python 程序),用 subprocess 打开所有子进程:收集器、 web 服务、数据库进程、看门狗之类的。
然后用个 bat 文件( windows )启动这个守护程序。

至于数据传输是用 redis 做数据中间件,如果业务毕竟简单的话,直接 redis 做数据持久化就行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/356400

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX