Планировщик заданий Windows будет запускать приложение только один раз - PullRequest
2 голосов
/ 27 сентября 2010

Так что моя ситуация такова, что я запускаю приложение в планировщике задач Windows. Это приложение запускается один раз в день в 13:00. приложение выполняет некоторые запросы и передает данные на FTP-сайт. Все, что работает отлично, за исключением выходных, когда я не здесь, приложение запущено, и графический интерфейс пользователя все еще отображается для просмотра. Кажется, это останавливает его работу в планировщике, пока я не закрою приложение. Так что в субботу он запустится, и приложение будет отображаться для просмотра, когда я вернусь в понедельник. но в воскресенье, когда планировщик попытается запустить его снова, произойдет сбой, поскольку приложение не было закрыто.

Сначала позвольте мне подтвердить, что именно так должен работать планировщик задач. Во-вторых, какие у меня есть альтернативы для планирования выполнения каждый день и отображения графического интерфейса, чтобы я мог просмотреть. Приложение может запускаться несколько раз, так как каждый сеанс не мешает другим сеансам. Так что, если я уйду в отпуск на неделю, я ожидаю, что когда я вернусь, 7 экземпляров приложения уже запущены и ждут моего отзыва.

Спасибо AGP

Ответы [ 3 ]

1 голос
/ 27 сентября 2010

Лучше всего исключить пользовательский интерфейс и записывать сообщения в журнал событий или файл журнала. Пользовательский интерфейс может порождаться из CLI как отдельный процесс, если вы предпочитаете, но это должно быть сделано как его собственный, не дочерний процесс.

Кроме того, вы можете запустить пакетный файл вместо процесса напрямую. В командном файле вместо «EXE» вызовите «START path_to_exe». Это приведет к немедленному «завершению» пакетного файла, и исполняемый файл будет запущен в своем собственном процессе. Это не хорошее долгосрочное решение, но даст вам временное решение вашей непосредственной проблемы.

0 голосов
/ 28 сентября 2010

Я рекомендую записывать в файл журнала вместо отображения пользовательского интерфейса для любых выводов и / или ошибок.Таким образом, приложение может написать, затем выйти, и вы можете просмотреть журнал в любое удобное время.Это очень распространенное решение для автоматизированных процессов.

0 голосов
/ 27 сентября 2010

Это поведение по умолчанию для системы запланированных задач, поскольку она не знает, что задание завершено, пока приложение не завершится. Поэтому, если ваше приложение все еще открыто через 24 часа, следующий прогон будет просто пропущен, поскольку текущий прогон "все еще идет", насколько это касается планировщика.

Лично я бы повторно ознакомился с тем, как вы справляетесь со своим рабочим процессом, поскольку вы настраиваете сценарий, которым будет трудно управлять в долгосрочной перспективе.

...