gpt4 book ai didi

javascript - SailsJS 测试进程是否已在运行

转载 作者:行者123 更新时间:2023-12-03 02:52:46 27 4
gpt4 key购买 nike

假设我有一个很长的任务,当有人连接到 InitializeDB 时,该任务就开始运行。 (当然,将来会获得授权,但暂时不考虑)。

'post /initializeDB':'OrderController.initializeAll',

现在的问题是:初始化函数不应该运行两次。 - 我知道理想情况下我设置了一个任务管理器,它只是在后台启动一个我可以轮询的任务。
然而,为了当前的简单性,(并展示概念证明) sails 路线是否有可能“知道”另一个连接/路线已经在运行?这样,如果我两次连接到 /initializeDB 它就不会尝试两次初始化数据库?

最佳答案

您可以在 Controller 中使用变量 - 只需在进程运行时将其切换为 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);
},
};

关于javascript - SailsJS 测试进程是否已在运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47772546/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com