Artikel ini akan memperkenalkan kepada anda cara melaksanakan tugas berjadual dalam Node saya harap ia akan membantu anda!
Pada masa ini kami telah menghadapi permintaan sedemikian Setiap pengguna boleh menyesuaikan tekan berjadual Konfigurasi masa tugas yang dijadualkan dikonfigurasikan oleh pengguna sendiri dan boleh diubah suai pada bila-bila masa , bukannya tradisional Pelayan menetapkan masa untuk menjalankan tugas yang dijadualkan. [Pembelajaran yang disyorkan: "Tutorial nodejs"]
Jika kitaran tugas yang dijadualkan diketahui, maka tugas berjadual Linux Crontab boleh dilaksanakan. Sudah ada penyelesaian yang agak matang dalam nod. Di bawah ini saya akan memperkenalkan penyelesaian tugas berjadual Node yang telah saya pelajari tentang diri saya sendiri.
telur ialah rangka kerja aplikasi peringkat perusahaan Node Alibaba Ia menyediakan satu set mekanisme untuk pembangun menulis tugas berjadual dengan elegan. , sila rujuk dokumentasi rasmi untuk butiran: https://eggjs.org/zh-cn/basics/schedule.html , penggunaan khusus tidak akan dihuraikan di sini, tetapi penggunaan konfigurasinya akan dibincangkan secara ringkas dibincangkan.
1. Tugas berjadual statik, iaitu kitaran masa, logik pemprosesan dikodkan dengan keras.
2. Konfigurasikan tugas berjadual secara dinamik, yang secara relatifnya lebih fleksibel Pembangun boleh mengawal kitaran tugasan yang dijadualkan melalui fail konfigurasi.
3 Mencetuskan tugas yang dijadualkan secara manual melalui kod.
Daripada tiga perkara di atas, tugas berjadual yang disediakan oleh egg tidak dapat memenuhi keperluan kami untuk pengguna mengkonfigurasi tempoh masa dengan sendirinya, jadi kami hanya boleh mencari penyelesaian lain dengan menanyakan data, kami mendapati bahawa nod perpustakaan -jadual juga menyediakan fungsi tugas berjadual.
Selepas menyemak imbas dokumentasi node-schudulehttps://www.npmjs.com/package/node-schedule Selepas itu, penggunaannya adalah seperti berikut:
const schedule = require('node-schedule'); const job = schedule.scheduleJob('42 * * * *', function(){ console.log('The answer to life, the universe, and everything!'); });
Ya, ia menyokong kitaran pemasaan tersuai, yang boleh memenuhi keperluan kami dan boleh menjadi pilihan kami
Teruskan menyemak imbas pembangun lain Saya menemui rekod masalah yang berkaitan dengan jadual nod berdasarkan artikel pengguna Secara ringkasnya, pemasa telah dilaksanakan dua kali pada masa yang dijadualkan Untuk masalah tertentu, sila lihat teks asal: https://cnodejs.org/. topic/5b58414b8d66b90b2b7384a7 . Ini adalah masalah berkemungkinan rendah Kami tidak mengesahkannya Kerana keperluan kami, pemasa dilaksanakan dua kali, yang tidak memberi kesan kepada keputusan kami, jadi ini bukan halangan yang menghalang kami daripada menggunakannya Uji pepijat.
Akhir sekali, berikut adalah ringkasan penyelesaian tugas berjadual projek kami sendiri Pelajar yang tidak berminat boleh melangkaunya.
Bagian belakang kami menggunakan rangka kerja telur, jadi penyelesaian terakhir kami ialah menambah pemasa nod-schdule pada proses ejen. Pemasa pengguna akan dilaksanakan dalam proses ejen secara serentak besar, jadi saya hanya memikirkan penyelesaian ini buat masa ini Selepas volum ditingkatkan pada masa hadapan, bahagian belakang boleh digunakan dalam cara yang diedarkan.
Ini akan menjadi masalah, dan menjalankan satu proses juga akan menjadi masalah jika volumnya besar, dan telur itu sendiri tidak mengesyorkan melakukan terlalu banyak perkara berkaitan perniagaan dalam proses ejen. Satu lagi perkara penting ialah ejen adalah proses tambahan Beberapa kerja awam disiapkan dalam ejen Jika ralat yang tidak ditangkap berlaku, ejen tidak akan keluar dan memulakan semula, jadi pemprosesan toleransi kesalahan mesti dilakukan dan dilakukan dengan baik.
Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !
Atas ialah kandungan terperinci Perbincangan ringkas tentang cara melakukan tugas berjadual dalam Nodejs. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!