Rumah >hujung hadapan web >tutorial js >Struktur Data Gilir: Cara Membina Gilir Tugas Node
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:
<code class="language-javascript">const queue = []; queue.push('item 1'); queue.push('item 2'); console.log(queue.shift()); // item 1 console.log(queue.shift()); // item 2</code>Pendekatan yang lebih berstruktur menggunakan kelas ES6:
<code class="language-javascript">class Queue { constructor() { this.q = []; } send(item) { this.q.push(item); } receive() { return this.q.shift(); } }</code>Ini sesuai untuk tugas-tugas klien yang kurang kritikal, tetapi kekurangan kegigihan dan akses pelbagai aplikasi.
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
: <code class="language-javascript">const queue = []; queue.push('item 1'); queue.push('item 2'); console.log(queue.shift()); // item 1 console.log(queue.shift()); // item 2</code>
npm install
.env
QUEUE_DB_HOST
QUEUE_DB_PORT
send.js
(pemprosesan dari barisan):
<code class="language-javascript">class Queue { constructor() { this.q = []; } send(item) { this.q.push(item); } receive() { return this.q.shift(); } }</code>
receive.js
Butiran Modul:
<code class="language-json">{ "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 } }</code>
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!