我使用WhatsUpGold来监视服务的正常运行时间,其中一个是MySql服务器。由于对MySql没有明确的支持,我不得不编写一个VBS脚本来完成它。不幸的是,WhatsUpGold不支持WScript.Sleep。他们论坛上的另一种选择是这一个,但这似乎是一种肮脏的攻击。除了这两种方法之外,我还有什么别的选择吗?我真的不想在周围复制/粘贴函数。
发布于 2009-06-29 11:19:37
哦,这可是个无趣的把戏。但是,如果应用程序没有被锁定,所以不能使用wshell.run,那么它就可以工作了。我觉得我真的很喜欢..。
如果应用程序运行在一个您可以管理访问的框上,以便您可以注册一个COM DLL,那么当我希望在经典的ASP代码中进行测试时(有时插入人为的延迟是有用的),我使用的是一个简单的免费DLL,不幸的是它不再从原始源(请看这里的一些讨论)中获得。如果你想试一试的话,我已经在这里里放了一份。要调用,请使用类似于Dim WaitObj: Set WaitObj = Server.CreateObject ("WaitFor.Comp"): WaitObj.WaitForSeconds 10的内容
毫无疑问,库只是睡眠API调用的包装器,所以如果您不想信任某个未经审核的3d方的随机库(信任来自未经审查的来源的匿名代码不是我不推荐的,我也算得上是未经审查的源代码)。对于VB6,调用将声明为Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)。
不过,现在我要做的第一件事是,在尝试上述两种方法之前,先在StackOverflow中询问其他人在经典ASP中非繁忙等待中使用了什么。您可能会发现,还有另一个库仍然受到其创建者的支持,或者是一种更好的技术。由于ping的诀窍是使用CreaetObject,我怀疑在经典ASP上下文中可用的任何东西都可以从应用程序中使用。
发布于 2009-06-29 10:59:44
啊!我已经很多年没有使用"WhatsUp“软件了,所以我已经失去了熟悉度。快速回顾他们的论坛和搜索我的朋友古格尔证实了你提到的丑陋的黑客。
我会滥用PING,就像我们在批处理文件中所做的那样,有时是为了延迟。很聪明,但很丑。
除了丑陋之外,另一种方法就是想出完全不需要任何“睡眠”功能的代码。您是如何监视MySQL的?您是否使用ODBC连接到它并运行一个查询来判断它的“活性”?
发布于 2009-06-29 11:00:10
ping -n X 127.0.0.1的技巧是一个黑客,但不是特别脏。自上世纪以来,它被广泛地应用于各种Windows批处理脚本中;)
https://serverfault.com/questions/33161
复制相似问题