2

通常の powershell httplistener スクリプトを使用しています。スクリプトはポート 80 でリッスンし、応答を返します。

今、私は同時に複数のリクエストを処理しようとしました。問題は、スクリプトによって最初の応答が終了するまで、2 番目の応答を待たなければならないことです。

http-request ごとに独自のジョブを開始しようとしましたが、PS-Job からリスナーに応答を送信できません。

PSで並列httprequestsを処理する方法を知っている人はいますか?

私が使用しているスクリプトは次のとおりです。

$url = 'http://localhost/'
$listener = New-Object System.Net.HttpListener
$listener.Prefixes.Add($url)
$listener.Start()

Write-Host "Listening at $url..."

while ($listener.IsListening)
{
$context = $listener.GetContext()
$requestUrl = $context.Request.Url
$response = $context.Response

Write-Host ''
Write-Host "> $requestUrl"

$localPath = $requestUrl.LocalPath
$route = $routes.Get_Item($requestUrl.LocalPath)

if ($route -eq $null)
{
$response.StatusCode = 404
}
else
{
$content = & $route
$buffer = [System.Text.Encoding]::UTF8.GetBytes($content)
$response.ContentLength64 = $buffer.Length
$response.OutputStream.Write($buffer, 0, $buffer.Length)

}
$response.Close()

$responseStatus = $response.StatusCode
Write-Host "< $responseStatus"
}

同時に複数のリクエストを処理する正しい方法は何ですか? 皆さんありがとう!

4

1 に答える 1

0

同じ PowerShell プロセス内で複数の実行空間 (実行空間プールも含む) を使用できます。その方法の詳細については、このブログ投稿を参照してください。

于 2013-10-10T14:09:49.567 に答える