Javascript 防止在nodejs中同时运行两个函数实例

Javascript 防止在nodejs中同时运行两个函数实例,javascript,node.js,Javascript,Node.js,我正在使用rest接口来执行一个可能需要一些时间的过程,一旦该过程开始,另一个实例将无法启动,并返回一个通知,说明该过程正在进行中 有没有一种方法可以在不使用锁(文件或数据库)的情况下监视此进程的执行(运行状态)?也许这样可以 var isRunning = false; function doStuff(){ if(isRunning){ return 'this function is already running'; } isRunning =

我正在使用rest接口来执行一个可能需要一些时间的过程,一旦该过程开始,另一个实例将无法启动,并返回一个通知,说明该过程正在进行中

有没有一种方法可以在不使用锁(文件或数据库)的情况下监视此进程的执行(运行状态)?

也许这样可以

var isRunning = false;

function doStuff(){
    if(isRunning){
        return 'this function is already running';
    }

    isRunning = true;
    // do things with a promise or whatever.then(function(){
        isRunning = false;
    })
}

当然,长时间运行的进程可能是通过一个具有回调或返回承诺的函数来完成的,然后您只需要一个递归函数,但是如果没有任何代码,就很难编写一个示例。您是说单独的节点进程吗?如果不是,一个简单的标志变量就可以作为锁(但没有它你就无法做到)。对你的设置没有足够的描述来理解如何回答这个问题。如果您自己的代码负责启动子进程,那么您可以在启动子进程后直接监视它,并让其他代码检查是否已经有一个正在运行。如果是node.js进程之外的东西启动了它,您可以使用各种操作系统工具来检查进程列表中当前正在运行的特定进程签名。我想我已经仔细考虑了手头的问题。