我正在使用cron任务每2分钟安排一次工作。 由于在cron中没有更高的分辨率不到一分钟,我使python代码调用一个随机睡眠命令(在0-60之间),因此它会将执行时间分散到一分钟。
这对我来说很好。
我只是想知道如果我有一个睡眠时间为50秒的过程,它会在这50秒内保持记忆吗?它会导致性能问题吗?
答案 0 :(得分:2)
毫无疑问,Python
占用的内存和脚本的启动将在sleep
期间保留在内存中,但由于您编写了代码,因此您可以组织内容以最小化睡眠结束前的内存使用情况。
至于cpu性能,我确信你在睡眠期间不会产生任何开销。
答案 1 :(得分:2)
至少会使用python进程的最小内存(如果没有换出,但交换也会降低你的计算机速度,使用磁盘,如果这是一个问题就应该避免)。在导入所需的模块之前,不确定是否可以在python中休眠。
但是,您可以在开始程序之前随意睡觉:
crontab -l
* 0 * * * (sleep $((RANDOM\%50)); python program.py)
此处需要\
,因为%
只是在cronjobs中表示换行符。您还可能需要在crontab顶部使用SHELL=/bin/bash
来使$ RANDOM可用。如果不能选择SHELL,请更改为sleep $(($$\%50))
以使用PID。