目前,我们有一个托管在 Azure VM 实例上的应用程序。
此应用程序有时会处理长时间运行和空闲的 HTTP 请求。这导致了一个问题,因为Azure 将关闭所有空闲时间超过几分钟的连接.
我看到了一些关于设置较低 TCP keepalive 速率的建议。我试过了将此速率设置为 45 秒左右但我的 HTTP 请求仍然被关闭。
有什么建议么?我们的虚拟机运行的是 Server 2008 R2。
作为一个简单的解决方法,我让脚本每 5 秒左右发送一个换行符以保持连接处于活动状态。
Example:
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;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)