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);
    },
};