我正在构建一个执行 http 请求的脚本,以便“唤醒”一些 asp.net 应用程序。
以下脚本正在运行,但是是同步的:
function WakeUp([string] $url)
{
Write-Host "Waking up $url ..." -NoNewLine
$client = new-object system.net.WebClient
$client.UseDefaultCredentials = $true
$null = $client.OpenRead($url)
$client.Dispose()
Write-Host " Ok"
}
# Run your code that needs to be elevated here
@(
"http://app1/",
"http://app2/",
"http://app3/"
) | % { WakeUp $_ }
Run Code Online (Sandbox Code Playgroud)
我想改进此脚本以避免唤醒目标站点。实际上,调用 toOpenRead在返回之前等待答案。
我尝试使用OpenReadAsync,但是在Dispose实际发出请求并且目标应用程序未唤醒之前调用发生。
我有哪些选择?
[编辑]应用 Andy Arismendi 的建议,我的脚本现在是:
$WakeUp = {
Param ([string] $url)
try
{
Write-Output "Waking up $url ..." …Run Code Online (Sandbox Code Playgroud) powershell ×1