我對 NodeJS 非常陌生,正在嘗試開發一個應用程式,該應用程式充當調度程式,嘗試從 ELK 獲取資料并將處理后的資料發送到另一個 ELK。我能夠實作預期的行為,但是在完成所有行程后,調度程式作業不存在并等待另一個調度程式作業出現。
注意:此調度程式每 3 分鐘運行一次。
作業.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 部署應用程式時節省一些資源。
uj5u.com熱心網友回復:
完成所有作業后,您可以呼叫process.exit()以退出應用程式。
在此特定代碼中,您可能需要reports.sendData()在退出之前知道實際何時完成。我們必須知道該代碼是什么和/或查看代碼才能知道如何知道它何時完成。僅僅因為它是一個async函式并不意味著它被正確地撰寫為回傳一個完成后決議的承諾。如果您需要進一步的幫助,請向我們展示代碼sendData()以及它呼叫的任何代碼。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/452919.html
標籤:节点.js Kubernetes
