首页 > 解决方案 > NodeJS,CPU密集型操作进行得很顺利,我该如何调试?

问题描述

const runDailyUpdate = async () => {
  await fetchSomeData()
    .then(doSomeCalculations)
    .then(storeStuffInDb)
    .catch((err) => {
      console.log(err);
    });
  console.log("daily update complete");
};

我让这个功能每天运行一次。大约需要一个小时才能完成。有时,它只是停在中间。我在任何地方都遇到了错误,console.logs。没有错误信息或什么都没有。内存不缺。

我该如何调试呢?把它放在工人身上会有帮助吗?如果是这样,我如何将此代码与工人一起使用?

标签: node.js

解决方案


如果您还没有超时,可能值得添加某种超时 - 您可以使用 bluebird 之类的东西Promise.race

Promise.race([
  runDailyUpdate(),
  Promise.delay(TWO_HOURS).then(() => console.log("Timed out!")),
]);

推荐阅读