0

現在、Azure VM インスタンスでホストされているアプリケーションがあります。

このアプリケーションは、実行時間の長いアイドル状態の HTTP 要求を処理することがあります。これは、Azure が数分以上アイドル状態だったすべての接続を閉じるため、問題を引き起こしています

より低い TCP キープアライブ レートの設定に関するいくつかの提案を見てきました。このレートを約 45 秒に設定しようとしましたが、HTTP 要求はまだ閉じられています。

助言がありますか?VM は Server 2008 R2 を実行しています。

4

2 に答える 2

2

簡単な回避策として、接続を維持するためにスクリプトで 5 秒ごとに改行文字を送信するようにしました。

例:

set_time_limit(60 * 30);
ini_set("zlib.output_compression", 0);
ini_set("implicit_flush", 1);

function flushBuffers()
{
    @ob_end_flush();
    @ob_flush();
    @flush();
    @ob_start();
}

function azureWorkaround($char = "\n")
{
    echo $char;
    flushBuffers();
}

$html = '';
$employees = getEmployees();
foreach($employee in $employees) {
    html .= getReportHtmlForEmployee($employee);
    azureWorkaround();
}

echo $html;
于 2014-01-20T21:27:50.183 に答える