Tag: 信号量

NodeJScallback:跟踪数据库调用,所以我可以终止进程

这个月我从Heroku收到一个账单,这令我感到意外。 幸运的是,只有几美元,但我认为我的使用率并不高。 我查了一下账单,说上个月我用了大约1000个小时。 我简单地感到困惑,因为我的应用程序每小时运行几秒钟发送一些电子邮件,但后来我意识到这个过程并没有终止。 在注释掉我的代码之后,我确定该进程不会因为我的mongoose数据库连接仍然打开而退出。 但是我有几个嵌套的callback数据库,然后mailgun发送这些电子邮件,有时mailguncallback有自己的mailguncallback。 我如何跟踪这些数据并确保数据库在最后closures?

在nodejs中实例化对象时防止踩踏

当我在NodeJS中使用Google Cloud服务时,我必须访问“存储”(如存储)中的资源,并且在我第一次给他们打电话时,我必须检查它们是否存在,如果不存在,请创build它们。 那么,如果多个资源在应用程序启动时访问同一个存储桶,他们将尝试同时创build它。 为了防止踩踏,我必须使用这样的东西: getStorage(id) { return new Promise((resolve, reject) => { // Exists storage? if(id in this.storage) { let storage = this.storage[id]; // Storage is ready, deliver if(storage.ready) { return resolve(storage); } // Not ready, wait until storage is ready let wait; let start = +Date.now(); wait = setInterval(() => { // Storage is […]

node.js中的信号量 – 使用计数器variables

我一直在学习JavaScript一段时间,我似乎无法理解为什么下面的代码将无法正常工作。 我试图使主执行线等待asynchronous函数调用的结束使用信号量技术。 你可以看看这里的代码: var fs = require("fs"); var data = ""; var asyncDone = false; var fstream = fs.createReadStream("text.txt"); fstream.setEncoding("utf-8"); fstream.on("data", function (chunk) { data += chunk; }); fstream.on("end", function() { console.log("reading done"); console.log(data); asyncDone = true; }); while (! asyncDone) { } console.log("program terminating"); 任何帮助将不胜感激,谢谢。