【问题标题】:Would a scheduled Java app run when Windows is in sleep mode?当 Windows 处于睡眠模式时,计划的 Java 应用程序会运行吗?
【发布时间】:2011-04-27 00:00:02
【问题描述】:

如果我启动一个 Java 应用程序,它会启动并执行一些工作,然后进入线程休眠一个小时,然后在一个小时后醒来并执行更多工作...

但是我的电脑运行的是 Win7,并且在 15 分钟不活动后,它将进入睡眠模式,所以我的问题是:从我启动 Java 应用程序的一个小时后,如果我不触摸电脑,它就会进入睡眠模式,我的 Java 应用程序是否仍然能够唤醒并完成其工作,如果是这样,Win7 PC 是否会在屏幕再次打开时唤醒[因为在 Win7 睡眠模式下屏幕会关闭]?

【问题讨论】:

  • 我真诚地怀疑您的计算机可以在没有一些硬件信号(例如键盘或 LAN IRQ 唤醒)的情况下退出睡眠模式。软件无法做到这一点:在睡眠模式下,您的处理器不运行任何代码,甚至不运行您的操作系统的代码。
  • 我相信我已经看到 Windows Media Center 可以唤醒计算机来录制节目。一定是主板计时问题。

标签: java windows sleep-mode


【解决方案1】:

如果不是 Windows,它怎么可能运行?主板支持自动唤醒可能有一些技巧,但是当机器处于睡眠模式时,从操作系统和程序的角度来看,它可能还不如关闭。

编辑:注意其他答案,这些答案表明使用某些 Windows API 和工具(可能与主板一起提供定时唤醒)的变通方法。

【讨论】:

    【解决方案2】:

    我知道WHS 的客户端组件允许您的 PC 自行唤醒以执行客户端备份。您实际上可以指定将 PC 从睡眠状态唤醒以执行通过实际 WHS 控制的备份的选项。他们完成这项任务的方式不是通过 Java,而且我确信他们在操作系统中有不同的钩子,因为在睡眠模式下实际上仍然有电源供应。这是一个article,它讨论了在 Java/C++ 中检测到待机的移动并防止它,并且可能对您尝试以不同的方式完成的工作有价值。另外你可以使用WOL远程唤醒PC。

    【讨论】:

      【解决方案3】:

      普通的 Thread.sleep() 不会将计算机从睡眠模式中唤醒。

      但是,当使用 Windows 任务计划程序注册任务时,您可以选择“唤醒计算机以运行此任务”。当进入睡眠模式时,Windows 会告诉主板下一个注册唤醒任务的时间。

      【讨论】:

        【解决方案4】:

        如果您的机器处于睡眠状态,那么一切都会暂停。包括您可能想要运行的任何自定义应用程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-02-12
          • 1970-01-01
          • 2011-01-24
          相关资源
          最近更新 更多