440 AJAX POST呼叫期间的网关超时

时间:2015-10-14 07:24:55

标签: ajax xmlhttprequest long-polling connection-timeout timeoutexception

我正在尝试使用以下POST ajax调用来调用后端控制器

$http({
 url: 'WS/datagen/' + userID + '/' + rows+'/'+validatePrimaryKey,
 method: "POST",
 timeout: 300000,
 data: $scope.cnentity
}).then(function(response) {
  // success
  $rootScope.loading = false;
  if (response.data == true) {
  $rootScope.myAlertElm.html('<span style="color:Green;"><strong>Data          Generated Successfully !! \n Please click "Check Data availability"  again</strong><span>');
 } 
 else {
  $rootScope.dgAlertElm.html('<span style="color:Red; "><strong>Data generation cannot be done for conditions containing primary key!</strong><span>');
  return false;
 }
console.log("hitting the query service");
}, 
function(response) { // optional
        // failed
        console.log("Failure");
        $scope.delta = ( ( new Date() ).getTime() startedAt.getTime() );
        console.log($scope.delta);
});

然后响应超时并产生此消息。

Failure<HEAD><TITLE>Connection Timed Out</TITLE></HEAD>
<BODY BGCOLOR="white" FGCOLOR="black"><H1>Connection Timed Out</H1><HR>
<FONT FACE="Helvetica,Arial"><B>
Description: Connection Timed Out</B></FONT>
<HR>
<!-- default "Connection Timed Out" response (504) -->
</BODY>

当多个用户尝试调用此程序时,会随机发生这种情况。后端程序是同步和多线程的。它按顺序按用户执行用户,每个用户请求可能需要3分钟,有时甚至更多。在此等待期间,正在发生超时。

我试图增加apache超时和ajax http超时,但它没有解决任何问题。 如何避免或增加此超时? long-polling / websocket会帮忙吗?如果是,如何实施邮局调用?

0 个答案:

没有答案