SailsJS 测试进程是否已经 运行
SailsJS test if process is already running
假设我有一个很长的任务,当有人连接到 InitializeDB
时 运行ning 开始。 (当然在未来需要授权,但暂时不考虑)。
'post /initializeDB':'OrderController.initializeAll',
现在的问题是:初始化函数不应该 运行 两次。 - 我知道理想情况下我设置了一个任务管理器,它只是在后台启动一个我可以轮询的任务。
然而,为了当前的简单性,(并显示概念证明)是否有可能一条通往 "know" 的航行路线,而另一条 connection/route 已经在 运行 宁?这样一来,如果我两次连接到 /initializeDB
,它就不会尝试初始化数据库两次吗?
您可以在控制器中使用变量 - 只需在进程为 运行 时将其切换为 true
,诸如此类。所以,在 OrderController.js:
var initializeRunning = false;
module.exports = {
initializeAll: function(req, res) {
// return benign result if already running
if (initializeRunning) {
return res.send({alreadyRunning: true});
}
// start running
initializeRunning = true;
// using setTimeout as a stand-in for a long async process
setTimeout(function() {
// finished the process
res.send({complete: true});
// if you want to allow this method to run again later, unset your toggle
initializeRunning = false;
}, 3000);
},
};
假设我有一个很长的任务,当有人连接到 InitializeDB
时 运行ning 开始。 (当然在未来需要授权,但暂时不考虑)。
'post /initializeDB':'OrderController.initializeAll',
现在的问题是:初始化函数不应该 运行 两次。 - 我知道理想情况下我设置了一个任务管理器,它只是在后台启动一个我可以轮询的任务。
然而,为了当前的简单性,(并显示概念证明)是否有可能一条通往 "know" 的航行路线,而另一条 connection/route 已经在 运行 宁?这样一来,如果我两次连接到 /initializeDB
,它就不会尝试初始化数据库两次吗?
您可以在控制器中使用变量 - 只需在进程为 运行 时将其切换为 true
,诸如此类。所以,在 OrderController.js:
var initializeRunning = false;
module.exports = {
initializeAll: function(req, res) {
// return benign result if already running
if (initializeRunning) {
return res.send({alreadyRunning: true});
}
// start running
initializeRunning = true;
// using setTimeout as a stand-in for a long async process
setTimeout(function() {
// finished the process
res.send({complete: true});
// if you want to allow this method to run again later, unset your toggle
initializeRunning = false;
}, 3000);
},
};