如何在执行完所有操作后在 Node JS 中完成一个流程
How to complete a process in Node JS after executing all the operations
我是 NodeJS 的新手,正在尝试开发一个应用程序,该应用程序充当调度程序,尝试从 ELK 获取数据并将处理后的数据发送到另一个 ELK。我能够实现预期的行为,但在完成所有过程后,调度程序作业不存在并等待另一个调度程序作业出现。
注意:此计划程序每 3 分钟运行一次。
job.js
const self = module.exports = {
async schedule() {
if (process.env.SCHEDULER == "MinuteFrequency") {
var timenow = moment().seconds(0).milliseconds(0).valueOf();
var endtime = timenow - 60000;
var starttime = endtime - 60000 * 3;
//sendData is an async method
reports.sendData(starttime, endtime, "SCHEDULER");
}
}
}
我尝试了各种解决方案,例如 Promise.allSettled(....., Promise.resolve(true) 等,但无法解决此问题。
根据我的要求,我希望调度程序完成并处理并退出,以便在我计划使用 Kubernetes cronjobs 部署应用程序时节省一些资源。
完成所有工作后,您可以调用 process.exit()
退出应用程序。
在此特定代码中,您可能需要知道 reports.sendData()
何时真正完成才能退出。我们必须知道该代码是什么 and/or 查看代码以了解如何知道它何时完成。仅仅因为它是一个 async
函数并不意味着它被正确地写入 return 一个在完成时解析的承诺。如果您需要进一步的帮助,请向我们展示 sendData()
的代码以及它调用的任何代码。
我是 NodeJS 的新手,正在尝试开发一个应用程序,该应用程序充当调度程序,尝试从 ELK 获取数据并将处理后的数据发送到另一个 ELK。我能够实现预期的行为,但在完成所有过程后,调度程序作业不存在并等待另一个调度程序作业出现。
注意:此计划程序每 3 分钟运行一次。
job.js
const self = module.exports = {
async schedule() {
if (process.env.SCHEDULER == "MinuteFrequency") {
var timenow = moment().seconds(0).milliseconds(0).valueOf();
var endtime = timenow - 60000;
var starttime = endtime - 60000 * 3;
//sendData is an async method
reports.sendData(starttime, endtime, "SCHEDULER");
}
}
}
我尝试了各种解决方案,例如 Promise.allSettled(....., Promise.resolve(true) 等,但无法解决此问题。
根据我的要求,我希望调度程序完成并处理并退出,以便在我计划使用 Kubernetes cronjobs 部署应用程序时节省一些资源。
完成所有工作后,您可以调用 process.exit()
退出应用程序。
在此特定代码中,您可能需要知道 reports.sendData()
何时真正完成才能退出。我们必须知道该代码是什么 and/or 查看代码以了解如何知道它何时完成。仅仅因为它是一个 async
函数并不意味着它被正确地写入 return 一个在完成时解析的承诺。如果您需要进一步的帮助,请向我们展示 sendData()
的代码以及它调用的任何代码。