【问题标题】:Application must be running even if computer goes to sleep mode即使计算机进入睡眠模式,应用程序也必须运行
【发布时间】:2014-01-15 08:49:13
【问题描述】:

即使计算机进入睡眠模式,我也想保持我的应用程序运行。我在我的应用程序中使用了线程,它会在特定时间间隔后执行一些任务。

电脑休眠时可以执行程序吗?

如果是,请提供一些解决方案或Java类。

【问题讨论】:

  • 我使用线程在特定时间间隔后在 Twitter 上发布推文,但是当计算机进入睡眠模式时我的线程被中断
  • 这就是睡眠模式的全部意义所在。如果您不希望它进入睡眠状态,请更改计算机的电源设置,使其不会进入睡眠状态。
  • 这可以做到,但我的问题是即使计算机进入睡眠模式,我希望我的线程按计划连续工作。
  • 这显然是不可能的。如果它还在做事,它就不会睡着了。如果你想写一个 Twitter 垃圾邮件机器人,那么你必须支付运行它的电费。

标签: java multithreading power-management


【解决方案1】:

当计算机处于睡眠模式时,您无法运行您的应用程序!它是否是运行它的线程并不重要。如果计算机进入睡眠状态,线程也将进入睡眠状态。这就是睡眠的意义所在。

【讨论】:

    【解决方案2】:

    您可以这样做:

    1. 让您的 Java 程序只执行一个工作单元。换句话说,如果你有一个while循环循环,然后等待N分钟,不要这样做。只需执行一次,让程序完成。基本上重构你的程序,让它一次执行一个任务。

    2. 创建一个简单的 Windows .bat 脚本,该脚本将从命令行调用您的程序(例如 java -cp)

    3. 创建 Windows 计划任务(或 Linux 中的 Cron 作业)。在 Windows 中,运行-->任务计划程序。指定您希望任务执行的频率(例如,每天一次、几小时等)。

    4. 重要提示:确保选中“唤醒计算机以运行此任务”。另外,将计划任务指向您在上面第 2 步中创建的 bat 文件,我还会选中“以最高权限运行”。

    5. 另外,选择触发的时间/方式(例如,用户登录时、一天中的某个时间、计算机重新启动时、注销时等)

    6. 例如,如果您希望计划任务每​​天每 15 分钟运行一次,您可以设置以下触发器: a) 每天在一天中的特定时间(比如下午 1:00) b) 选择“每天重复” c) 选择“每 15 分钟重复一次,持续 1 天”

    这会奏效。

    此外,与您尝试做的事情相比,它有几个优势。主要是 a)您的程序/线程不必每天 24 小时运行/睡眠,b)您不会受到偶尔的 Windows 重新启动的影响,c)您的计算机大部分时间可以睡眠(降低能源费用) .

    【讨论】:

      猜你喜欢
      • 2011-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-23
      相关资源
      最近更新 更多