Node.js ialah bahasa pembangunan bahagian pelayan yang digunakan secara meluas, dan banyak aplikasi bergantung pada tugas berjadual Node.js. Walau bagaimanapun, apabila menggunakan Node.js, kadangkala anda menghadapi masalah tugas berjadual yang hilang selepas dimulakan semula. Masalah ini menjejaskan kestabilan dan operasi normal aplikasi pada tahap tertentu, jadi ia perlu diselesaikan dalam masa.
Dalam artikel ini, kami akan memperkenalkan langkah demi langkah masalah tugas berjadual yang hilang dalam Node.js dan penyelesaiannya.
1. Penerangan masalah
Dalam aplikasi Node.js, kami biasanya menggunakan setTimeout atau setInterval untuk melaksanakan tugas yang dijadualkan. Fungsi ini membolehkan kita menetapkan selang masa dan kemudian melaksanakan sekeping kod pada selang ini, menggelung sehingga kita tidak memerlukannya untuk berhenti.
Walau bagaimanapun, apabila Node.js dimulakan semula, kami mendapati bahawa tugas berjadual ini hilang dan ia perlu dimulakan semula secara manual. Ini akan menyebabkan kami sentiasa memantau status berjalan aplikasi, yang memakan banyak masa dan tenaga.
2. Punca masalah
Dalam Node.js, apabila kita memulakan tugasan yang dijadualkan, ia akan ditambahkan pada baris gilir acara Apabila gelung acara mencapai tugas ini, ia akan Laksanakan kod yang sepadan mengikut selang masa yang kami tetapkan. Walau bagaimanapun, apabila kami memulakan semula Node.js, keseluruhan baris gilir acara akan dikosongkan, jadi semua tugas yang dijadualkan akan hilang.
3. Penyelesaian
Untuk menyelesaikan masalah ini, kita boleh menggunakan pm2, alat pengurusan proses Node.js. pm2 boleh membantu kami mengurus proses Node.js dan mengekalkan kestabilan aplikasi serta ketersediaan tinggi.
Penyelesaian khusus adalah seperti berikut:
Langkah 1: Pasang pm2
Gunakan npm untuk memasang pm2:
npm install -g pm2
Langkah 2: Mulakan Nod. aplikasi js
Gunakan pm2 untuk memulakan aplikasi Node.js:
pm2 start app.js
App.js di sini ialah fail kemasukan aplikasi kami.
Langkah 3: Sediakan tugas berjadual
Gunakan arahan pm2 untuk menyediakan tugas berjadual:
pm2 cron [interval] [command] [-d args]
Antaranya, selang ialah selang masa tugas yang dijadualkan, dalam detik atau ungkapan cron ialah perintah yang ingin kita laksanakan;
Sebagai contoh, jika kita ingin melaksanakan proses nod arahan.js setiap 30 saat, kita boleh menggunakan arahan berikut:
pm2 cron '*/30 * * * * *' 'node process.js'
Nota: Apabila menggunakan pm2 untuk menyediakan tugas yang dijadualkan, kita perlu Tetapkan laluan boleh laku cron dalam fail konfigurasi supaya pm2 mengetahui versi Node.js yang hendak dijalankan.
Langkah 4: Simpan fail konfigurasi pm2
Simpan fail konfigurasi pm2 menggunakan arahan berikut:
pm2 save
Ini akan menjadikan fail konfigurasi kami disimpan secara kekal dan pada kali seterusnya apl bermula Muatkan secara automatik.
Melalui langkah di atas, kami boleh menyelesaikan masalah tugas berjadual yang hilang selepas memulakan semula Node.js.
Ringkasan
Tugas berjadual Node.js adalah bahagian penting dalam aplikasi, jadi kami perlu memastikan kestabilan dan kebolehpercayaannya. Dengan menggunakan alat pengurusan proses pm2, kami boleh menyediakan dan mengurus tugas berjadual dengan mudah untuk mengekalkan operasi biasa dan ketersediaan aplikasi yang tinggi.
Atas ialah kandungan terperinci Tugas berjadual hilang selepas nodejs dimulakan semula. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!