2023年12月11日发(作者:)
电脑睡眠对java程序的影响
一、问题
在win10系统电脑上写了一个定时任务程序,每天晚上会自动上报自己的健康信息,下班锁屏不关电脑,但是三个晚上都没成功,我开
始怀疑是cron表达式写错了,但是经过校验都是对的,于是我想是不是电脑在晚上睡眠了,程序就不运行了,于是测试了下。
二、测试
代码:每隔10秒打印语句
package ;
import led;
import ent;
import amp;
@Component
public class Test {
@Scheduled(cron = "*/10 * * * * ?")
public void test() {
Timestamp timestamp = new Timestamp(tTimeMillis());
n(timestamp + "=========");
}
}
睡眠:
结果:
程序睡眠后不会执行定时任务
三、原因
来自百度百科:
睡眠(Sleep),是Windows Vista中的新模式,这种模式结合了待机和休眠的所有优点。将系统切换到睡眠状态后,系统会将内存中
的数据全部转存到硬盘上的休眠文件中(这一点类似休眠),然后关闭除了内存外所有设备的供电,让内存中的数据依然维持着(这一点类
似待机)。这样,当我们想要恢复的时候,如果在睡眠过程中供电没有发生过异常,就可以直接从内存中的(类似待机),速度很快;但如
果睡眠过程中供电异常,内存中的数据已经丢失了,还可以从硬盘上恢复(类似休眠),只是速度会慢一点。
不过无论如何,这种模式都不会导致数据丢失。正因为睡眠功能有这么多优点,因此Windows Vista上的电源按钮默认就会将系统切
换到睡眠模式。所以我们大可充分利用这一新功能,毕竟从睡眠状态下恢复,速度要比从头启动快很多。而且睡眠模式也不是一直进行下去
的,如果系统进入睡眠模式一段时间后(具体时间可以设定)没有被唤醒,那么还会自动被转入休眠状态,并关闭对内存的供电,进一步节
约能耗。
四、设置


发布评论