如何在Javascript/nodejs中声明实例变量?
我正在以每小时一次的频率运行一个守护进程。此代码应跟踪所有孤立客户端,如果某个客户端已孤立12小时,则应将其删除。代码以每小时一次的频率运行,因此我需要每小时保存数据,以便在下一个小时内可用。由于我不熟悉javascript,我尝试声明一个全局变量deleteOrientedClients=new Map()。 我的以下全局变量deleteOrientedClients是否会保存并在每次触发代码时可用如何在Javascript/nodejs中声明实例变量?,javascript,node.js,Javascript,Node.js,我正在以每小时一次的频率运行一个守护进程。此代码应跟踪所有孤立客户端,如果某个客户端已孤立12小时,则应将其删除。代码以每小时一次的频率运行,因此我需要每小时保存数据,以便在下一个小时内可用。由于我不熟悉javascript,我尝试声明一个全局变量deleteOrientedClients=new Map()。 我的以下全局变量deleteOrientedClients是否会保存并在每次触发代码时可用 var deleteOrphanedClients = new Map(); // Dele
var deleteOrphanedClients = new Map();
// Delete idle client without any parent.
exports.cleanupClients = function (clients, callback) {
for (int i = 0; i < clients.length; i++) {
// this checks if client is orphaned.
if (clients[i]["parent"] == undefined) {
if (deleteOrphanedClients[clients[i]] == undefined) {
deleteOrphanedClients[clients[i]] = new Date();
}
}
}
// delete all clients older than 12 hours from deleteOrphanedClients
};
var manager = function (cb) {
async.series(
[
function (callback) {
async.series(
[
function (cbi) {
// get clients.
},
function (cbi) {
cleanupClients();
},
],
function (err, results) {
callback(err, results);
}
);
}
],
);
};
exports.manager = manager;
var randomInt = function (low, high) {
return Math.floor(Math.random() * (high - low + 1) + low);
};
var pause = randomInt(0, 60);
setTimeout(
function () {
setInterval(manager, 36000 * 1000,
function (err, results) {
if (err) {
logError(err);
}
});
}, pause * 1000);```
var deleteOrientedClients=new Map();
//删除没有任何父级的空闲客户端。
exports.cleanupClients=函数(客户端,回调){
for(int i=0;i
您试过运行它吗?只要程序继续运行并且deleteOrientedClients
在作用域内,它就会可用。你能再详细说明一下这个问题是什么吗?谢谢不过,您可能会将Map
与基本对象混淆。使用.get
/.set
而不是方括号。如果node.js进程结束(在两次运行之间听起来像是结束了),那么deleteOrientedClients变量将消失,因为您没有专门将其保存到文件系统(或其他地方)。然后,您还需要在下次运行时从文件系统还原它。