Назад | Перейти на главную страницу

Альтернатива WScript.Sleep

Я использую WhatsUpGold для мониторинга времени безотказной работы служб, и один из них - сервер MySql. Поскольку нет явной поддержки MySql, я вынужден написать для этого сценарий VBS. К сожалению, WhatsUpGold не поддерживает WScript.Sleep. Альтернатива, которая есть на их форуме, - вот этот но похоже на грязный взлом. Есть ли альтернативы двум из них, которые я могу использовать? Я бы действительно предпочел не копировать / вставлять функции.

Ох, теперь это хитрый трюк. Однако это будет работать, если пользователь, от имени которого запущено приложение, не заблокирован и не может использовать wshell.run. Думаю, мне это действительно нравится ...

Если приложение запущено в ящике, к которому у вас есть доступ администратора, чтобы вы могли зарегистрировать COM-DLL, то, когда я хочу спать в классическом коде ASP для тестирования (иногда полезно вставлять искусственные задержки), я использую простой бесплатный DLL, которая, к сожалению, больше не доступна из исходного источника (см. здесь для обсуждения). Если вы хотите попробовать, я вложил копию в Вот. Чтобы вызвать, используйте что-то вроде Dim WaitObj: Set WaitObj = Server.CreateObject ("WaitFor.Comp"): WaitObj.WaitForSeconds 10

Без сомнения, эта библиотека - это просто оболочка для вызова API сна, поэтому вы можете создать свою собственную, если не хотите доверять какой-то случайной библиотеке от какой-то непроверенной третьей стороны (доверять анонимному коду из непроверенных источников - это не что-то Я бы не рекомендовал и считаю непроверенным источником). Для VB6 вызов будет объявлен как Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long).

Однако первое, что я хотел бы сделать на этом этапе, прежде чем попробовать что-либо из вышеперечисленного, - это попросить в StackOverflow узнать, что другие люди используют для незанятого ожидания в классическом ASP. Вы можете найти еще одну библиотеку, которая все еще поддерживается ее создателем, или даже лучшую технику в целом. Как ping трюк использует CreaetObject Я подозреваю, что все, что можно использовать в классическом контексте ASP, можно будет использовать из вашего приложения.

Ух! Я не использовал программное обеспечение "WhatsUp" в лет, поэтому я потерял знакомство. Быстрый просмотр их форума и поиск с моим другом Gooogle подтверждают упомянутые вами уродливые хаки.

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

Альтернативой тому, чтобы быть уродливым, было бы создание кода, который вообще не нуждается в каких-либо функциях «сна». Как вы отслеживаете MySQL? Вы подключаетесь к нему через ODBC и запускаете запрос, чтобы оценить его «живучесть»?

Уловка ping -n X 127.0.0.1 - это хитрость, но не особо грязная. Он широко известен и используется во всевозможных пакетных скриптах Windows с прошлого века;)

ты пробовала SleepCMD

Почему бы просто не использовать setTimeout метод? Взгляните на следующие столбцы «Привет, сценарист»:

http://blogs.technet.com/heyscriptingguy/archive/2006/03/30/how-can-i-tempoporary-pause-a-script-in-an-hta.aspx

http://blogs.technet.com/heyscriptingguy/archive/2006/08/18/how-can-i-minimize-or-hide-an-html-application-for-30-seconds.aspx