首页 > 解决方案 > Node js在无限循环中调用有限数量的函数以寻找新任务

问题描述

我正在寻找建议或现成的包裹。我有一个编码音频和视频的功能。但在调用此函数之前,另一个函数会检查数据库是否有要编码的文件。我的问题是我真的不知道应该如何实现它。我的第一个想法看起来像这样

let runningEncode = 0;
function runWorkFlow(maxEncode) {
      while (runningEncode < maxEncode) {
        console.log("Check if file")
        if("File"){
          ++numRunning
          console.log("start encoding")
          await new Promise(r => setTimeout(r, 20000)) //Encode simulation
          console.log("end encoding")
          --numRunning;
        }
        await new Promise(r => setTimeout(r, 5000)) //Check database for every 5 sec
      }
  }
  runWorkFlow(2)

但即使对我来说它看起来也很糟糕

我想要实现的是只调用 2 个编码函数,当一个完成后检查数据库。如果没有要编码的文件,则每 5 秒检查一次数据库

标签: javascriptnode.jsbackend

解决方案


推荐阅读