发出时间消耗请求时环回超时(服务器无响应)

Loopback timeout(no response from server) when make a time consume request

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

但不幸的是,在进程完成之前环回 returns 超时(服务器无响应)。

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

request.setTimeout(0)

谁能告诉我如何为环回执行此操作远程方法

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

您可以为特定路由或 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();
});

If not you can also use a remote method for that route and add the same there.

更新

如果您想要单个 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();
});

看起来很简单。

我所要做的就是在我的远程方法中传递 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....
});

谢谢!