我这个程序出了什么问题,求大佬指教

2020-01-14 14:39:42 +08:00
 s04
本人想写一个内存占用率记录的脚本,这个脚本的目标是将内存占用率大于百分之 90 的情况下的时间戳用 txt 文本记录下来。但本人目前用列表写出来的并不能执行记录功能(由 warning_recorder 函数实现),求大佬指教。

代码如下:

<script src="https://gist.github.com/Leetroch/90c2c78eff3b4cfca68a6a66a1935441.js"></script>
2641 次点击
所在节点    Python
7 条回复
jyyx
2020-01-14 17:02:48 +08:00
函数 memory_panel 死循环, 然后打 exit 的时候是直接退出程序
最后 2 行代码不会执行
wangyzj
2020-01-14 17:25:38 +08:00
memory_panel 自己绕死了么不是
krixaar
2020-01-14 18:46:51 +08:00
mikeguan
2020-01-14 20:39:46 +08:00
感觉很多问题啊
occ_warning_recorder 参数没有使用
occ_warning_recorder 里面的 for 循环 rate 值一直没变
occ_warning_recorder 循环里面打开文件
if-elif 这样使用看着也别扭
s04
2020-01-15 15:44:34 +08:00
@krixaar 大佬厉害了,我仔细研究一下,你的代码里我还有好多看不懂。QAQ
s04
2020-01-19 22:59:12 +08:00
@krixaar 大佬,我初步有点眉目了,但我不太明白如何用你的 APScheduler,如何调度多个函数间隔时间运行?是用 BackgroundScheduler()方法吗?
krixaar
2020-01-20 09:46:59 +08:00
同一个 Scheduler 可以添加多个任务,通过 add_job(要执行的函数, 触发时间, 时间参数) 添加进去之后执行即可。
触发时间有一次性执行的'date'方式,固定时间间隔的'interval'方式和通过 cron 表达式的'cron'方式。

BlockingScheduler 启动后作为前台程序,在它 start 之后的代码会被阻塞掉不会被执行,如同你之前代码里的 memory_panel 阻塞掉了后两行导致没法记录。

BackgroundScheduler 启动后在后台静默执行,不会阻塞之后的代码。

例如修改为后台执行的样子:
https://gist.github.com/Raka-loah/07eebf739c6273432ec30b1073c8d63b

APScheduler 搜一搜有不少教程,具体的自己研究吧。

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

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

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

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

© 2021 V2EX