Запустится ли запланированное Java-приложение, когда Windows находится в спящем режиме? - PullRequest
6 голосов
/ 18 октября 2010

Если я запускаю приложение Java, оно запускается и выполняет некоторую работу, затем переходит в спящий поток на час, затем просыпается через час и выполняет еще какую-то работу ...

Но мой ПК работает под управлением Win7 и после 15 минут бездействия он переходит в спящий режим, поэтому мой вопрос: через час я запустил приложение Java, если я не коснусь ПК, и он перейдет в В спящем режиме, сможет ли мое Java-приложение по-прежнему просыпаться и выполнять свою работу, и если да, то будет ли Win7 PC просыпаться с включенным экраном снова [потому что в спящем режиме Win7 экран выключается]?

Ответы [ 4 ]

8 голосов
/ 18 октября 2010

Обычный Thread.sleep () не выводит компьютер из спящего режима.

Однако при регистрации задачи с помощью планировщика задач Windows вы можете выбрать «разбудить компьютер для запуска этой задачи». При переходе в спящий режим Windows сообщит материнской плате время следующей зарегистрированной активации.

3 голосов
/ 18 октября 2010

Как это может работать, если Windows не работает? Могут быть некоторые приемы, доступные с автоматическим включением, поддерживаемым материнской платой, но когда машина находится в режиме сна, с точки зрения ОС и программ, она также может быть выключена.

РЕДАКТИРОВАТЬ: принять к сведению другие ответы, которые указывают на обходные пути, использующие некоторые API и инструменты Windows (которые предположительно работают с материнской платой для обеспечения своевременного пробуждения).

2 голосов
/ 18 октября 2010

Я знаю, что клиентский компонент WHS позволяет вашему компьютеру разбудить себя для выполнения резервного копирования на стороне клиента. На самом деле вы можете указать вариант выхода компьютера из спящего режима для выполнения резервного копирования, которое контролируется с помощью фактического WHS . То, как они выполняют эту задачу, не через Java, и я уверен, что у них есть различные хуки в ОС, так как в спящем режиме фактически питание все еще подается. Вот статья , в которой говорится об обнаружении перехода в режим ожидания и его предотвращении в Java / C ++, и он может содержать значение для того, что вы пытаетесь выполнить другим способом. Кроме того, вы можете использовать WOL для удаленного пробуждения компьютера.

0 голосов
/ 18 октября 2010

Если ваша машина спит, значит все приостановлено.Включая любые пользовательские приложения, которые вы, возможно, захотите запустить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...