摘要:解决:在nodejs中调用服务,若超过2分钟服务没有返回数据,node会再次请求服务。 

加班的日子总算暂时结束了,才发现下午6点钟的天还没有黑!开始我的总结吧。。。

去年的某个项目用nodejs开发,前端和部分后端放到nodejs中处理,与数据库的交互是用C#写的WCF服务。然后前端用Ajax请求,node后端调用WCF服务取数据。 由于表中数据量很大,查询速度很慢,加上查询出的数据,需要经过一些表关联显示,所以处理时间较长。几次测试之后发现,在整整2分钟的时候,若服务还没有返回数据,就响应为再次请求,显然,这个是不行的。首先想到把Ajax请求的超时时间设置下,测试发现不可行。调试后发现,2分钟后node会再次发起请求。网上查找好多资料,发现node用户还是比较少吧,资料很少。忘记在哪个地址看到说node有个默认2分钟机制,超过后会再次请求,给http设置超时时间为0即可解决,到官网一看,果然有个setTimeout方法:

https://nodejs.org/api/http.html#http_response_settimeout_msecs_callback

加上如下代码之后,即可解决:

response.setTimeout(, function(){'写入日志'});

在每个请求的响应里设置一下,岂不是很麻烦,尝试在端口监听位置,设置,测试后发现,ok。

var server=http.createServer(app);  
server.setTimeout();

Nodejs解决2分钟限制的更多相关文章

  1. Nodejs解决所有跨域请求

    Nodejs解决所有跨域请求 app.use(function(req, res, next) { res.setHeader('Access-Control-Allow-Origin', '*'); ...

  2. CentOS 无法通过 yum 安装新版 nodejs 解决办法(安装的还是老版的)

    官网安装说明:CentOS 安装 nodejs 第一步: curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo b ...

  3. [nodejs]解决mysql和连接池(pool)自动断开问题

    最近在做一个个人项目,数据库尝试使用了mongodb.sqlite和mysql.分享一下关于mysql的连接池用法.项目部署于appfog,项目中我使用连接池链接数据库,本地测试一切正常.上线以后,经 ...

  4. nodejs解决找不到express命令的问题

    一般的书或者教程上的安装步骤是:(需要是-g,即全局安装) npm install -g express //全局安装 而我们应该多多关注下express的文档,github地址:https://gi ...

  5. nodejs 解决跨域

    1.失败 app.all('*', function (req, res, next) { res.header("Access-Control-Allow-Origin", &q ...

  6. frp+TeamViewer 完美解决TeamViewer5分钟商业提醒

    必要条件:必须有一个公网服务器 frp是一个开源的端口转发工具,中文使用说明及下载地址在这里  https://github.com/fatedier/frp/blob/master/README_z ...

  7. [NodeJS] 优缺点及适用场景讨论

    概述: NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢? 本文就个人使用经验对这些问题进行探讨. 一. ...

  8. Nodejs系列-01-开篇

    1.解决什么问题 1. 并发连接 举个例子,想象一个场景,我们在银行排队办理业务,我们看看下面两个模型. (1)系统线程模型: 这种模型的问题显而易见,服务端只有一个线程,并发请求(用户)到达只能处理 ...

  9. NodeJS优缺点及适用场景讨论

    概述:NodeJS宣称其目标是“旨在提供一种简单的构建可伸缩网络程序的方法”,那么它的出现是为了解决什么问题呢,它有什么优缺点以及它适用于什么场景呢? 本文就个人使用经验对这些问题进行探讨. 一. N ...

随机推荐

  1. 神奇的 echo 命令

    #!/bin/bash 请输入密码,输入密码的时候不能看见因为颜色设置成跟背景色一样了,输入完密码进行加密,加密后保存在pass.txt echo "Please input a passw ...

  2. RT-Thread 线程的让出

    前面两个例子演示的线程调度是由系统“主动干预”的情况的线程切换,其实我们也可以根据实际情况,采用主动让出 CPU 使用权.RT-Thread 中的系统函数: rt_thread_yield(),可以让 ...

  3. Java高级之虚拟机加载机制

    本文来自http://blog.csdn.net/liuxian13183/ ,引用必须注明出处! 1.0版本:2016-05-21 SubClass!! 执行结果说明一个问题:子类调用父类变量的时候 ...

  4. php--validate表单验证

    validate表单验证扩展规则 添加自定义检验(验证class) 获取html加入 class <input id="D_NUMBER" name="D_NUMB ...

  5. ADO.NET中主要对象

    ADO.NET是什么? ADO.NET是.Net平台提供和数据库交互的类库集,我们可以通过它对SQLSERVER,XML,Oracle等这样的数据源进行访问. 应用程序可以使用ADO.NET链接到数据 ...

  6. [LeetCode] Search for a Range(二分法)

    Given a sorted array of integers, find the starting and ending position of a given target value. You ...

  7. PHP运行错最有效解决办法Fatal error: Out of memory (allocated 786432) (tried to allocate 98304 bytes) in H:\freehost\zhengbao2\web\includes\lib_common.php on line 744

    原文 PHP运行错最有效解决办法Fatal error: Out of memory (allocated 6029312) Fatal error: Out of memory (allocated ...

  8. JavaScript实现在文本框中输入空格时自动填写某个值

    <script language="javascript" type="text/javascript"> var txtText4 = " ...

  9. js的执行顺序

    js是顺序执行的,但是在一个<script></script>标签中,后面的函数会预加载.如: <script type="text/javascript&qu ...

  10. [代码片段]读取BMP文件(二)

    #include <stdio.h> #include <stdlib.h> #pragma pack(2) /*定义WORD为两个字节的类型*/ typedef unsign ...