問題タブ [azure-storage-queues]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - 1 つ以上の標準 FIFO キューを使用した遅延キューの実装
遅延キューは、各メッセージに遅延時間が関連付けられているキューであり、メッセージはその遅延が期限切れになった場合にのみ取得できます。キューの先頭は、過去に遅延が期限切れになったメッセージです。遅延の期限が切れていない場合、ヘッドはなく、デキューは null を返します。
実際、私は Azure を使用してクラウド アプリケーションを作成していますが、Azure では FIFO キューのみが使用可能であり、優先/遅延キューは使用できません。だから私はここに来て、誰かが私が正しい方向に向かうことができる場所からいくつかの指針を与えることができるかどうかを調べました. 私はよくグーグルで検索しましたが、Java での遅延キューの実装についてしか知りませんでした。一般的な遅延キューについて説明している標準的なチュートリアル/研究論文はありません。
編集:
私はコードを持っていますか?
実際には、まずこれを設計してマネージャーに提示する必要があります。設計が完成したら、コーディングを開始できるのは私だけです。
シナリオの詳細
マスター/スレーブ モデルに基づく分散アプリケーションです。マスターはメッセージを生成し、それらを Azure Service Bus キューに入れます。複数のスレーブ (複数のマシンで実行されている) がキューから読み取ってそれらを処理します。マスターがダウンした場合、スレーブの 1 つがマスターとして機能し、メッセージの生成を開始します。マスターに状態情報を保存したくありません。マスターがダウンした場合、その状態情報もすべて一緒に保存されるからです。
c# - CloudQueue.EndAddMessage(IAsyncResult) は実際に何をしますか?
私が電話するとしましょう
どこQueueMessageAdded
ですか
EndAddMessageは何をしますか?
すべてのコールバックが呼び出されるのを待つことを含め、次のように同期バージョンを呼び出すのと同じくらい遅くなります。
filtering - Windows Azure でキュー内のメッセージをフィルター処理する
プロパティに基づいてメッセージをフィルタリングする方法はありますか? つまり、特定のプロパティでのみワーカー ロールがそれを取得するということですか?
c++ - Windows Azure SDK for C++
私のプロジェクトの一部は、C++ で記述され、Linux で実行されるワーカー アプリケーションです。MS が Windows Azure SDK の C++ バージョンを提供していないことがわかりました。Windows Azure ストレージ キューにアクセスする必要があります。
SDK の C++ ポートはありますか? 他の言語 (python、node.js など) の SDK を使用する機会はありますか? または、REST API を使用するのが最適なオプションですか?
multithreading - Azureワーカーの役割、メモリ内のデータを集約するための最適な方法は?
複数のスレッドを使用してAzureキューを処理するX個のワーカーロールがあります。これらのキューを流れるデータはかなり単純ですが(このClient_IDの場合、アクションA、B、またはCがあり、トランザクションごとに1つのアクションがあります)、毎秒5000トランザクションを超える大量のデータがあります。次に、これらをClient_ID、タイプAの43のトランザクション、Bの場合は20、Cの場合は11を示す形式で集約する必要があります。基本的にそれらを合計します。ただし、キュー上のGetMessagesは、キューから32個のメッセージしか取得できません。
私の質問は-1000と言うまでその時点で32を取得し続け、次にそれらを実行して合計する必要がありますか?または、リスト、キュー、またはキャッシュに合計を保持しますか?
私のシナリオに最適なアグリゲーターメカニズムとして、これらのキューから常にメッセージを取得する5つのスレッドを持つ10のワーカーロールが存在する可能性があることを知って、何をお勧めしますか?
azure - すべてのワーカーロールインスタンスにメッセージを送信するにはどうすればよいですか?
私はAzureQueueを使用してロール間で通信していました。「GoToMaintenanceMode」、「StopSendingEmails」、「DoNotAcceptRequests」などのメッセージ。ただし、キューメッセージが複数のインスタンスを持っている場合、一度に1つのインスタンスしか表示されないため、シナリオでは機能しないことに気付きました。
だから私の質問は以下のオプションの横にありますRole.AllInstances.Run()などのようなこの問題を処理するためのエレガントな方法はありますか?
私が現在使用しているメソッド: インスタンスはメッセージをピークし、メッセージに独自のインスタンスIDを追加してキューに戻し、独自のインスタンスIDが含まれている場合はメッセージをピークしません。
PS TCPリスナーを実装したくないので、ネイティブソリューションがあるかどうかを尋ねます。
azure - transactionScopeはAzureQueueにどのように影響しますか?
Azure Queueトランザクション(プッシュ/ポップ)がtransactionScope内で行われる場合、それらはコミットする必要がありますか、それともトランザクションの完全性に関係なく実行されますか?
azure - Azure Queue Storage-CloudQueue.GetMessages()を呼び出した直後にメッセージを表示可能としてマークします
問題:
Azure Storage Queueからメッセージを読み取り、ワーカーロールを使用してそれらをストレージテーブルに挿入しています。
メッセージを読み込みたいのですが、少なくとも100個ある場合にのみメッセージを処理します(これは、発生しているストレージテーブルのバッチ挿入を最適化するためです)。メッセージが100未満の場合は、メッセージ処理をキャンセルして、次のキューの読み取りのためにすぐにキューに再び表示されるようにします。
質問:
CloudQueue.GetMessages(...)
タイムアウトの期限が切れるのを待たずに、読んだばかりのメッセージを表示済みとしてマークすることは可能ですか?
コード: (WorkerRole.cs内)
ありがとう
php - Azure キューをポーリングすると壊れたパイプが返される
azure-sdk-for-php を使用して Azure Queue Storage をロング ポーリングしているときに、要求が 30 秒以上離れている場合、ライブラリは次のエラーで終了します。
スリープ機能を 30 秒に設定すると、すべてがうまくいきますが、必要のないリクエストを大量に作成しています。
私の労働者コード:
azure - Azure Queues: メッセージの非表示タイムアウトがいつ期限切れになるかを判断する方法
Azure Queues で、メッセージの非表示タイムアウトがいつ期限切れになるかを調べる方法はありますか。タイムアウトが期限切れになるかどうかを確認し、必要に応じて延長したいと考えています。