Tutorial ini menerangkan struktur data giliran dan menunjukkan aplikasi mereka dalam sistem beratur, sering digunakan untuk memproses tugas jangka panjang seperti penghantaran surat berita e-mel. Kami akan membina giliran tugas nod mudah menggunakan MongoDB sebagai broker mesej.
Konsep Utama:
push()
) atau kelas ES6 untuk pengurusan giliran. shift()
queue-mongodb
memudahkan pengurusan barisan dalam node.js menggunakan mongoDB.
Struktur data giliran:
Baris adalah struktur data FIFO (pertama-dalam-pertama). Item ditambah (enqueued) ke belakang dan dikeluarkan (ditakrifkan) dari depan.
BASIC JavaScript Giliran:
Giliran mudah boleh dilaksanakan menggunakan array JavaScript:
const queue = []; queue.push('item 1'); queue.push('item 2'); console.log(queue.shift()); // item 1 console.log(queue.shift()); // item 2
class Queue { constructor() { this.q = []; } send(item) { this.q.push(item); } receive() { return this.q.shift(); } }
Platform beratur (redis, rabbitmq, dan lain -lain):
Untuk aplikasi pelayan yang kompleks, broker mesej khusus yang ditawarkan:
menggunakan mongoDB sebagai broker mesej:
kami akan menggunakan modul untuk barisan tugas nod yang mantap, mudah dilaksanakan. queue-mongodb
persediaan projek giliran tugas nod:
queue-test
). package.json
: const queue = []; queue.push('item 1'); queue.push('item 2'); console.log(queue.shift()); // item 1 console.log(queue.shift()); // item 2
npm install
.env
QUEUE_DB_HOST
QUEUE_DB_PORT
send.js
(pemprosesan dari barisan):
class Queue { constructor() { this.q = []; } send(item) { this.q.push(item); } receive() { return this.q.shift(); } }
receive.js
Butiran Modul:
{ "name": "queue-test", "version": "1.0.0", "type": "module", "scripts": { "send": "node ./send.js", "receive": "node ./receive.js" }, "dependencies": { "@craigbuckler/queue-mongodb": "^1.0.0", // Adjust version as needed "dotenv": "^16.0.3" // Add dotenv for environment variables } }
Modul menggunakan MongoDB untuk penyimpanan. Kaedah menambah dokumen, dan queue-mongodb
mengambil dan memadam item tertua. ,
menyediakan fungsi pengurusan barisan tambahan. send()
receive()
remove()
Kesimpulan: purge()
count()
Atas ialah kandungan terperinci Struktur Data Gilir: Cara Membina Gilir Tugas Node. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!