DJ makrus
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору lucky_Luk Цитата: Да, думал что должно стартовать раз в 2 часа. | 1. У нас речь идет о втором варианте моей задачи в которой Код: т.е. если я правильно тебя понимаю, то ты думаешь что эта задача без паузы в конце будет стартовать раз в час (а не в два), это не принципиально в нашем случае, просто что бы путаницы не получилось. 2. Если мы убираем паузу, то задача выполняет только одно действие - выводит окошко, и пока ты его не закрыл следующее действие она не выполнит (опять не совсем удачный пример привел , т.к. если ты не закрываешь окошко 48 часов, то все эти 48 часов у тебя вторая эта же задача не запустится..., надо было beep-канье сделать), допустим в течении 5 сек. ты его закрываешь иии? Что после этого задача не завершилась? Ведь больше нет никаких действий, а есть слово )# которое и означает завершить задачу, т.е. после закрытия окошка тут же может запуститься вторая эта же задача, если пришло ее время. 3. А почему раз в час? Смотри, допустим настало 8 часов утра начался девятый час, у нас в условиях задачи на месте минут стоит звездочка, и во сколько минут тогда надо запустить эту задачу? в 8:01? или может в 8:41? Когда? Вот когда ты указываешь минуты "0", то все ясно - 8:00. А звездочка означает что может быть любая из 60-сяти минут. Цитата: У меня именно так, запускается файл cmd (командный файл, что-то типа батника), который копирует файлы из одного места в другое. | Хорошо, с этим определились, полезли дальше вглубь. Цитата: Командный файл возится с копированием минут 5, но если вместо минут стоит звездочка, то nnCron умудряется стартовать вторую задачу через минуту, хотя SingleInstance в задаче есть. | Т.е. ты хочешь сказать, что когда есть обновление и ты не выходишь из задачи по EXIT и до того как ты увидел сообщение "Обновление баз успешно завершено" у тебя запускается второй экземпляр этой задачи? Хочу подчеркнуть что важно не то сколько возится командный файл (это не надежный критерий, ниже объясню почему), а именно до или после запуска второго экземпляра этой задачи ты видишь сообщение. Если ты его видишь после, то мне с трудом в это верится, ты уж извини... Тут возможен вариант, что ты видишь сообщение еще до того как командный файл закончит копирование и тогда, естественно, вполне возможен запуск второго экземпляра этой задачи. Теперь по поводу запуска с помощью START-APPW: и "некорректности" его работы. Это слово всегда работает корректно, но надо помнить что оно "держит" дальнейшее выполнение задачи ожидая завершение только того процесса который оно запускает! Если запущенный им процесс запускает другой, а сам при этом закрывается, то сразу же после его закрытия продолжится выполнение задачи! Пример: Код: #( CLASSIC-TASK-#-Test_Time2 \ NoActive SingleInstance AsLoggedUser Time: * 8-23 * * * * Action: START-APPW: c:\Temp\Сopy.cmd BEEP: 500 500 )# | в файле Сopy.cmd одна строчка "notepad При старте запускается блокнот (копирование файлов), как только через пять минут (файлы копируются) мы закрываем блокнот, то слышим писк и с началом следующей минуты у нас опять появляется блокнот, т.е. все правильно работает. Теперь делаем по другому - после появления блокнота открываем таскменеджер и в нем убиваем процесс "cmd.exe" - мы тут же слышим писк и с началом новой минуты появляется второй блокнот, так как пять минут работы первого (копирование файлов) еще не прошли, т.е. получается слово START-APPW: работает "неправильно", а вместе с ним и SingleInstance В таких случаях, что бы отследить окончание работы комндного файла надо в конце его работы добавить создание файл-флага. Тогда запускать этот командный файл можно с помощью обычного START-APP:, а сразу после запуска добавить примерно следующий цикл: Код: BEGIN 1000 PAUSE S" c:\Temp\endcopy.flg" EXIST? \ этот файл должен создать командный файл в конце своего выполнения UNTIL | попробуй.
---------- все познается в сравнении |
| Всего записей: 529 | Зарегистр. 25-03-2004 | Отправлено: 15:39 30-12-2008 | Исправлено: DJ makrus, 15:40 30-12-2008 |
|