nodejs שמירת נתונים לבסיס נתונים לפני אתחול השרת
-
@יוסף-בן-שמעון אמר בnodejs שמירת נתונים לבסיס נתונים לפני אתחול השרת:
https://stackoverflow.com/questions/14031763/doing-a-cleanup-action-just-before-node-js-exits
הבעיה שהייתה לי שם שזה ביטל את הכיבוי לחלוטין והיו צריכים להשמיד את התהליך בכדי לעצור אותו לגמרי.
כעת נכנסתי לזה שוב ועשיתי פטנט פשוט, שלאחר ביצוע השמירה הנדרשת, אני מסיר את האירוע מהכיבוי ואז אני מכבה פשוט.
ב"ה עובד חלק.
בכל אתחול של השרת אני קורא את הנתונים השמורים, ורק בעת כיבוי אני שומר בכדי לשחזר אותם להפעלה החוזרת.
להלן הקוד[`exit`, `SIGINT`, `SIGUSR1`, `SIGUSR2`, `uncaughtException`, `SIGTERM`].forEach((eventType) => { process.on(eventType, (eventType) => { let data = JSON.stringify(myData.ActiveCalls); fs.writeFile(ActiveCallsFile, data, function (err) { if (err) { console.log('There has been an error saving your configuration data.'); console.log(err.message); // return; } process.removeAllListeners('exit'); process.exit(); }); }); })
ולהלן הקוד בתחילת הקובץ עבור האתחול
let ActiveCallsFile = './projects/bs/ActiveCalls.json'; try { let loadData = fs.readFileSync(ActiveCallsFile); myData.ActiveCalls = JSON.parse(loadData); } catch (err) { }