做的事情:
python (on Linux) 写了一个通过api
获取实时降雨量的脚本。
目的:
当下雨状态改变,通过telegram bot
推送消息,例如开始下雨了,或者停止下雨了都通知我一下。
方法:
每隔 15 分钟判断一下api
反馈回来的降雨量数值,并和此前状态进行比较。现在有两个方案,一是写成systemd
服务,把是否降雨1 or 0
的状态一直留在内存里面,这个脚本一直运行,间隔 15 分钟通过sleep
实现;二是把降雨状态写成文件放到硬盘里面,通过crontab
或者systemd-timer
每隔 15 分钟执行一次脚本,在非执行期间,程序不运行。
求助:
这两种是否存在可靠性差异?对于类似的小脚本,哪种普适性更好?
1
AoEiuV020 2021-08-09 14:10:47 +08:00 1
15 分钟才改变一次的状态,这也值得纠结?显然每次存在硬盘里更稳定更方便,
|
3
AoEiuV020 2021-08-09 14:27:18 +08:00 2
@imes 这关键是一个服务常驻内存 15 分钟一点动作都没有的话你甚至应该搞个 watchdog 监控一下,顺便为了随时重启恢复状态应该同时把数据在硬盘也保存一份,
实际上这压根就没有只保存在内存的选项, |
5
wellsc 2021-08-09 14:38:50 +08:00
这种需求 随便怎么搞
|
6
yitingbai 2021-08-09 14:41:37 +08:00
我的观点不一样, 放内存更方便, 就一个状态变量, 也不是非常有价值的数据, 丢就丢了. 连 1KB 都没有, 不值得写额外代码保存到硬盘, 也不值得给磁盘增加一个文件
|
7
imes OP @yitingbai 6# 确实,毕竟服务器稳定性一直很好,放在内存里面光靠 sleep 也不会有问题。主要还是纠结症晚期,总是忍不住在想万一出问题了怎么办,虽然这个脚本本身没有什么大不了的。
|
8
echoechoin 2021-08-09 18:39:53 +08:00
我喜欢写到 /var/log/做日志
|
9
cpstar 2021-08-09 19:28:33 +08:00
反倒觉得坚决扔内存,搁硬盘那才是大炮打蚊子
|