ホームページ >ウェブフロントエンド >jsチュートリアル >キューデータ構造:ノードタスクの構築方法キュー
このチュートリアルでは、キューデータ構造について説明し、電子メールニュースレター配信などの長期にわたるタスクの処理によく使用されるキューイングシステムでのアプリケーションを実証します。 MongoDBをメッセージブローカーとして使用して、シンプルなノードタスクキューを作成します。
要求に応じてすぐにタスクを実行することは、必ずしも実行可能ではありません。 電子メールニュースレターシステムを想像してみてください。何千もの電子メールを即座に送信すると、システムが圧倒されます。 同様に、すぐに変更されたアップロードされた画像を変更すると、受け入れられない遅延が生じます。 デカップリングタスクは、バックグラウンドプロセスがワークロードを処理する間、インスタントユーザー応答を提供します。
重要な概念:
mongodbを使用した効率的なキューイング:
push()
shift()
モジュール:queue-mongodb
基本的なjavaScriptキュー:JavaScriptアレイを使用して簡単なキューを実装できます。 より構造化されたアプローチでは、ES6クラスを使用しています:
これらは、それほど重要ではないクライアント側のタスクに適していますが、持続性とマルチアプリケーションアクセスがありません。
キューイングプラットフォーム(redis、rabbitmqなど):
複雑なサーバーアプリケーションの場合、専用のメッセージブローカーが提供します:
<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>
データの永続性
<code class="language-javascript">class Queue { constructor() { this.q = []; } send(item) { this.q.push(item); } receive() { return this.q.shift(); } }</code>複数のアクセスプロトコル
複数のキュー
メッセージングの遅延
トランザクションのようなサポート公開パターン
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
<code class="language-javascript">class Queue { constructor() { this.q = []; } send(item) { this.q.push(item); } receive() { return this.q.shift(); } }</code>
(キューからの処理): receive.js
<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>
モジュールの詳細:queue-mongodb
モジュールはMongoDBを保存に使用します。
が最も古いアイテムを取得して削除します。 send()
、receive()
、およびremove()
は、追加のキュー管理機能を提供します。purge()
count()
このチュートリアルは、mongoDBを使用してnode.jsにタスクキューを実装する実用的で効率的な方法を示しています。 このアプローチは、シンプルさとスケーラビリティのバランスを取り、幅広いアプリケーションに適しています。 コードと構成を特定のニーズと環境に適応させることを忘れないでください。 完全なコードはgithubで利用できます(実際のgithubリポジトリが利用可能な場合はリンクが提供されます)。
以上がキューデータ構造:ノードタスクの構築方法キューの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。