Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。4テーブルの一覧の取得エンティティの削除まとめキューの作成アプリケーションが起動すると、キューが作成されます(リスト2)。サンプルでは送信用、返信用の2本のキューを利用しますが処理に違いはないので、片方を取り上げて説明します。...});(1)はキュー用のクライアントの作成をしています。使用するメソッドと引数が多少異なるだけで前回のBLOB用クライアント作成と変わりありません。(2)のcreateQueueIfNotExistメソッドでキューを作成します。第1引数に作成したいキュー名を指定し、第2引数にはコールバック関数を指定します。キューの有無に関わらずコールバック関数は呼び出されます。キューが存在せずに新規に作られた場合は、コールバック関数の第2引数がtrueに設定されることで処理を切り分けることができます。メッセージの追加メッセージを入力し、[送信]ボタンをクリックすると、キューへメッセージを追加します(リスト3)。});};(1)はPOSTデータからメッセージを取得しています。(2)のcreateMessageメソッドで受け取ったメッセージを送信用キューに追加しています。第1引数にはキュー名を、第2引数にはメッセージを、第3引数にはコールバック関数をそれぞれ指定します。キューへ送信できるメッセージの最大サイズは64KBで、キューに保存される有効期間は最大7日間です。有効期間内に取得されないメッセージは削除されます。メッセージの取得と削除メッセージの取得はワーカーロール側で行います。Node.jsにおけるワーカーロールの構造はリスト4のとおりです。...(セットアップ用バッチファイル)Webロールの場合、node.exeはIISによってホスティングされますが、ワーカーロールの場合はスタートアップタスクから直接起動されます。このためWebSocketのようにIISがサポートしていない通信を直接行いたい場合や、Webロールとは別ロールでタスクを処理したい場合などにワーカーロールが利用できます。送信キューに追加されたメッセージは、ワーカーロール側で処理を実行するために取得され、処理が終わった後削除されます(リスト5)。2000);(1)のsetInterval関数はNode.js組み込みのタイマー関数です。第2引数で指定されたミリ秒が経過するたびに、第1引数のコールバック関数が呼ばれます。ここでは2000ミリ秒(2秒)間隔でキューをポーリングしています。(3)のgetMessagesメソッドでキューのメッセージを取得します。第1引数にキュー名、第2引数にオプション、第3引数にコールバック関数を指定します。オプションは省略可能ですが、ここでは明示的に(2)のオブジェクトで指定しています。「numofmessages」は、一度に取得するメッセージ数を指定します。既定では1ですが、最大32まで指定可能です。「visibilitytimeout」はメッセージを取得したもののメッセージを削除しなかった場合に、指定した時間を経過した後に再びキューに現れる時間を指定します。これはキューからメッセージを取得したものの、例外等の理由でメッセージを削除できなかった場合に、再度そのメッセージを処理対象とするための機能です。(4)のdeleteMessageでメッセージを削除します。第1引数にキュー名、第2~3引数にメッセージの情報を指定します。キューの削除キューをリセットするために、[キューの再作成]ボタンをクリックすると、キューを削除、作成します。リスト6は削除部分の抜粋です。});キューの削除は、deleteQueueメソッドを使います。キューに溜まっていたメッセージも一緒に削除されます。NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Technologies。執筆コミュニティ「WINGSプロジェクト」代表。