我有处理数千个数据的请求。所以有时需要5分钟才能完成。
但不幸的是,在进程完成之前,loopback会返回超时(服务器没有响应)。
在nodejs请求中。您可以通过以下代码删除特定请求的请求超时。
request.setTimeout(0)
任何人都可以告诉我如何为环回远程方法?
执行此操作答案 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();
});