Tag: 超时

使用SuperLogin / Couchdb注册新用户的时间很长

用户注册SuperLogin意味着创build一个用户数据库。 经过调查,最终看起来像CouchDB本身和创build一个新的数据库时,30秒延迟。 我现在必须明白为什么CouchDB需要这么长时间才能做到这一点…] 在通过CouchDB数据库中的SuperLogin注册新用户时,我面临着30秒的延迟。 有时甚至更长,导致服务器超时错误。 但是,一切运行在同一台本地计算机上,Fauxton通常非常快,以及我在这个CouchDB数据库和PouchDB应用程序之间进行的数据同步。 你有什么想法如何解决这个问题? 或者至less如何获得有关发生的更多日志? 下边是: 1)Node / SuperLogin服务器的输出显示了OPTIONS和POST之间的30secs +延迟(OPTIONS是由于CORS引起的,但是POST查询来自postman时,我有相同的30secs + delay,所以CORS不应该是原因) 2)Server.js源代码 3)客户端代码。 非常感谢! 1)服务器输出 >node server.js Memory Adapter loaded App listening on 3000 ::1 – – [29/Nov/2016:21:44:42 +0000] "OPTIONS /auth/register HTTP/1.1" 204 – "http://localhost:8100/" "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.87 Safari/537.36" ::1 – – [29/Nov/2016:21:45:19 +0000] […]

从SQL Server中新创build的表中提取logging时发生超时错误

我遇到了SQL Server的一个非常奇怪的问题。 我无法从特定模式的新build表中获取数据。 在同一台服务器上有多个模式 ,但只有其中一个导致超时错误。 我正在使用https://www.npmjs.com/package/mssql#连接到导致错误的数据库。 我也使用http://dbeaver.jkiss.org/ ,它运作良好。 有没有人面临同样的问题,或知道如何解决这个问题? 提前致谢。

Node.js设置setKeepAlive不停止与setTimeout超时

我想弄清楚Node.js的净类如何处理超时和keepalive。 我将它们设置在服务器端,观察设置这些variables有什么不同。 我注意到,如果我将Keepalive设置为以下内容: // Set keepalive socket.setKeepAlive( true, 30000 ); 它绝对会发送Keepalive数据包,我用Wireshark观察。 但是,即使我订阅套接字的超时事件,套接字也不会超时。 所以我尝试设置套接字的超时选项。 // Set timeout variables socket.setTimeout( 60000 ); 即使与keepAlive选项结合使用,在最后一次真正的传输数据包之后,套接字在60秒后仍然超时。 所以我的问题是,如果keepAlive没有做任何事情来防止套接字超时,那有什么意义呢?

Cassandra操作超时

操作超时 – 只收到0个响应。',info:'表示来自服务器的错误信息',代码:4608,一致性:1,收到:0,blockFor:1,isDataPresent:0,… 我每天都会得到这个错误,试图在我的cassandra集群上执行SELECT查询。 我们在m1.large aws实例上有一个3节点的集群。 他们大部分时间都是成功的,但每隔一段时间我们就会得到上述的错误。 我们还没有生产,所以桌子都很小。 我们没有任何超过几千行的表,并且相同的查询在其他时间完成。 提高时间不是一个选项,我不相信它会解决问题(查询应该是短的,错误中的查询是不一样的每次) 这可能是一些连接在节点或networking问题之间陈旧? 什么是testing这些最好的方法? 我也只在客户端看到这个错误,在cassandra日志中有没有我应该看到的地方?

NodeJS clearTimeout()似乎不能正常工作?

我有一个超时,它基本上杀死了这个进程运行了很长时间,但是这只有当某个条件没有被满足的时候。 如果我的条件被击中,我使用clearTimeout()来清除超时,但似乎错误和进程杀死持续。 这是我的代码片段; 即使clearTimeout()命中,错误仍然会在5分钟后打印出来。 function poll(callback){ var timeLimit = setTimeout(function(){ if(log) log("Could not get a response from the command.", "error"); process.exit(1); }, 300000); exec("some command", function(error, stdout, stderr){ if(stdout){ clearTimeout(timeLimit); // Do other stuff } else { setTimeout(function(){ poll(callback); }, 1000); } }); } 我在浏览器中testing,似乎在一个典型的JavaScript控制台工作,但也许我上面做错了什么? 如果是这样,任何帮助将不胜感激。 以上是我的确切代码(当然除了命令和错误消息),所以如果有任何错误,应该可以看到上面。 提前致谢。

如何用nodejs处理超时请求

所以,我向服务器发出这个请求,我设置了一个超时,我想处理超时事件,但是我也想处理“中止”事件,并且不同的事件。 我设法做到这一点,但我想知道是否有更好的方法来做到这一点。 代码如下所示: makeRequest = function(json, cb){ var requestError request({ url: REQUEST_URL, json: json, timeout: 3000, headers: { 'Content-Type': 'application/json' } }, function(err, res, body){ if(err) requestError = err else cb(null, res, body) }).on('abort', function(){ setTimeout(function({ if(requestError != 'ETIMEDOUT') cb(httpStatusCode.REQUEST_TIMEDOUT) else cb(httpStatusCode.REQUEST_ABORTED }, 1000) }) } 我注意到,在超时事件中,'abort'事件都被触发,请求callback被调用,所以我使用setTimeout函数等待请求callback,并处理'abort'监听器中的错误。 这似乎是一个愚蠢的做法,我在网上search,并没有find一种方式哟只处理callback事件。 我也注意到,超时会触发on。('error',function(err){})事件,我可以处理这个错误,但是它也会调用on('abort',function(){})事件并最终调用主callback(CB)两次,崩溃我的应用程序。 有没有办法,我可以只有一个事件超时,只有一个中止,所以我不必使用setTimeout? 或者,我的req对象中是否有任何属性可以检查该请求是否超时? 或者你有什么其他的build议来解决我的问题,而不是丑陋的方式? 我正在使用nodejs 0.12.2和请求2.55.0谢谢!

如何在nodejs中中断超时运行的方法?

使用内置支持线程的语言似乎是一个相当简单的任务,但是, 有没有办法终止/超时长时间运行的方法/无限recursion方法? 例如,如果我有一个以callback为参数的API,并且在调用之前和之后做一些处理并返回结果。 function api(data,callback) { processedData = before(data); result = callback(processedData); processedResult = after(result); return processedResult; } 如果臭名昭着的开发人员跟随这个APIcallback function cpuFrenzy(data) { while(true); } result = api( {} , cpuFrenzy); render(result); 和API的结果是用来呈现HTML。 节点js是单线程将阻止所有请求到服务器! 那么是否有任何方法让api超时/终止callback方法的执行,如果超过预设时间,为了避免阻止所有的web请求? 如果没有,有没有其他方法来实现这个API?

在节点mysql超时

因为我们知道node有一些mysql模块,有些是纯js实现的(比如node-mysql ),有些是基于libmysql的。 我更喜欢node-mysql,因为它不需要额外的mysql库,看起来更“干净”。 但是我也注意到它不支持在连接和查询中的超时function,这可能会导致一些环境的问题。 所以我的问题是:有没有人干净地解决这个超时问题?

定期检查和清理服务器中的文件

我有以下与socket.io后端。 每当我们在新的浏览器选项卡中通过localhost:3000打开一个连接时,将在服务器的文件夹tmp/中创build一个以套接字标识命名的文件。 var express = require('express'); var app = express(); var server = require('http').createServer(app); var io = require('socket.io').listen(server); server.listen(3000); app.get('/', function (req, res) { res.sendfile(__dirname + '/index.html'); }); io.sockets.on('connection', function(socket) { var fs = require('fs'); fs.writeFile("tmp/" + socket.id, "hello", function (err) { if (err) { return console.log(err) }; console.log('a file is saved!'); }); }); 因为套接字可能会断开连接,以后不活动或闲置。 […]

如何在Node.js中设置http.createClient的Timeout?

有一篇文章: 如何在node.js中为客户端http连接设置超时 但是没有一个答案会起作用。 所以,我有这样的代码: var remote_client = http.createClient(myPost, myHost); var path = '/getData?'; var param = { }; var request = remote_client.request("POST", path,); // error case remote_client.addListener('error', function(connectionException){ console.log("Nucleus Error: " + connectionException); next(connectionException); }); request.addListener('response', function (response) { response.setEncoding('utf-8'); var body = ''; response.addListener('data', function (chunk) { // get the result! }); }); request.end(); […]