![]() |
Нужно ли завершать скрипт
У меня в планировщике win2008R2 по многу раз выполняется vbs-скрипт, начинающийся с нижеприведенных строк и кончающийся только закрытием лог-файла.
Dim WshShell Dim fso Dim LogFile Dim fLog Set WshShell = CreateObject("WScript.Shell") Set fso = CreateObject("Scripting.FileSystemObject") LogFile = Left(WScript.ScriptName,Len(WScript.ScriptName)-4) & ".log" Set fLog = fso.OpenTextFile(LogFile, 8, True) ... Иногда срывается выполнения скрипта из-за невозможности запуска программы в нем. После этого, несмотря на удаление зависшего задания в taskmgr, планировщик прекращает выполнять скрипт и пишет в журнале, что задача запущена, а ее действие и прекращение не наступает, т.е. зависание. Приходится полностью удалять задачу в планировщике и ее пересоздавать, чтоб дальше работала. Не может ли быть такое поведение из-за того, что нет WshShell.Quit и закрытия fso ? Или это не обязательно? Сервер я после сбоя не перегружаю, потому что пользователи не дают. |
Имхо, аккуратнее надо делать скрипт, применять обработку ошибок, чтобы скрипт не выскакивал на окно с ошибочным неотвеченным сообщением. Для скрипта в планировщике Вы его не видите, а оно существует.
В этом смысле я бы больше доверял cmd |
Цитата:
Цитата:
Цитата:
|
Цитата:
Цитата:
Цитата:
Как из освобождают, какими командами? Цитата:
Мне доставались в наследство и jscript. Никакой особой разницы в разбирательстве с ними не ощущаю. Почему vbs дохлый? |
Цитата:
Цитата:
|
Цитата:
|
Цитата:
|
Цитата:
А если вспомнить про то, что JScript в принципе не поддерживает передачу параметров по ссылке, а только по значению, и вспомнить, сколько методов Wbem используют именно передачу параметров по ссылке (для возврата значений), и вспомнить, в какую кучу кода это выливается в итоге на JScript — мой выбор однозначен. P.S. try-catch-finally ещё надо уметь правильно пользовать. А с этим проблем ещё больше. Цитата:
Цитата:
|
Цитата:
В случае сбоя 1С именно они появляются обычно. И как остановить скрипт, если 1с завис все-таки? |
Цитата:
Запустите: Код:
wscript.exe /? Цитата:
Цитата:
|
Цитата:
Цитата:
|
pavsem7, так это не «зависло». Как именно у Вас в скрипте организован запуск 1С?
Цитата:
|
Цитата:
Код:
zapuskV7 = """C:\Program Files (x86)\1Cv77\BIN\1cv7.exe""" |
Цитата:
|
pavsem7, файл с расширением *.vbs это просто текстовый файл. А вот расширение само по себе говорит о том что с этим текстом внутри файла дальше делать. В данном случае запуская планировщиком c:\script.vbs ты по факту запускаешь обработчик (wscript.exe или cscript.exe), которому на вход подаётся путь к коду (тексту) который надо выполнить.
Аналогия для лучшего понимания - когда ты открываешь Документ.docx ты ведь не запускаешь процесс Документ.docx. А запускается Microsoft Word (WINWORD.exe) которому на вход подаётся путь к Документ.docx. Тут то же самое. |
Цитата:
|
pavsem7, можно. Покажите скриншот дерева процессов wcsript.exe|cscript.exe → 1C….exe из Process Explorer'а в моменты а) нормальной работы 1С и б) «зависания» 1С.
Тем не менее, продолжаю настаивать на том, что разбираться надо с 1С, а не лепить костыли. |
Время: 02:59. |
Время: 02:59.
© OSzone.net 2001-