发出时间消耗请求时环回超时(服务器无响应)
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....
});
谢谢!
我有一个处理数以千计数据的请求。所以有时需要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....
});
谢谢!