进行时间消耗请求时,环回超时(服务器没有响应)

时间:2017-12-08 11:27:28

标签: node.js loopbackjs strongloop loopback angular-loopback

我有处理数千个数据的请求。所以有时需要5分钟才能完成。

但不幸的是,在进程完成之前,loopback会返回超时(服务器没有响应)。

在nodejs请求中。您可以通过以下代码删除特定请求的请求超时。

request.setTimeout(0)

任何人都可以告诉我如何为环回远程方法

执行此操作

2 个答案:

答案 0 :(得分:3)

看起来很简单。

我所要做的就是在我的远程方法中传递http req object,然后将超时设置为0。

 Visit.remoteMethod(
        'caculateDistance',
        {
            description: 'Calculate distance from beacon using rssi',
            accepts: [
                { arg: "req", type: "object", http: { source: "req" } },
                { arg: 'activationId', type: 'string', required: true }
            returns: { arg: 'data', type: 'Object', root: true },
            http: { verb: 'patch', path: '/:activationId/calculate-distance' },
        }
    );


Visit.caculateDistance = function (httpReq, activationId, callbackFn) {
        httpReq.setTimeout(0);
        /////calculations....
});

非常感谢!

答案 1 :(得分:2)

我不太确定这一点,但你可以尝试一下,因为我觉得这可能有效

您可以为该特定路线或server.js文件中的所有路线创建拦截器。

app.all('/api/*', function(req, res, next){
    request.setTimeout(0); // this is the statement and pass it to the next middle ware func.
    next();
});
  

如果不是,您也可以使用远程方法进行该路由并添加   同样的。

<强>更新

如果你想要一个api,只需使用

app.all('<exact api path>', function(req, res, next){
    request.setTimeout(0); // this is the statement and pass it to the next middle ware func.
    next();
});