Tugas berjadual hilang selepas nodejs dimulakan semula

WBOY
Lepaskan: 2023-05-28 10:39:07
asal
742 orang telah melayarinya

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
Salin selepas log masuk

Langkah 2: Mulakan Nod. aplikasi js

Gunakan pm2 untuk memulakan aplikasi Node.js:

pm2 start app.js
Salin selepas log masuk

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]
Salin selepas log masuk

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'
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!