私はAzure Queueからのメッセージを消費するワーカーロールをバックグラウンドで処理しています。ここで指定されたメッセージは存在しません。 ErrorCode:MessageNotFound Prod-WorkerError Context
System.Net.WebException Microsoft.WindowsAzure.Storage.StorageException Exception messages: The remote server returned an error: (404) Not Found. The remote server returned an error: (404) Not Found. Stack Traces: at System.Net.HttpWebRequest.GetResponse() at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand
1 cmd, IRetryPolicy policy, OperationContext operationContext) --- Next Call Stack: at Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync[T](RESTCommand
1 cmd, IRetryPolicy policy, OperationContext operationContext) at Microsoft.WindowsAzure.Storage.Queue.CloudQueue.DeleteMessage(String messageId, String popReceipt, QueueRequestOptions options, OperationContext operationContext) at InnovativeExams.Azure.CloudStorage.AzureQueue`1.DeleteMessage(T message) The specified message does not exist. ErrorCode:MessageNotFound Prod-WorkerError Context
:私は私のログを確認すると は、メッセージを処理するが、それでも私のログに、私は次の例外(だけ長いエラー・ログから関連するテキストの一部を貼り付け)を取得しながら、例外が記録されないことがあるように見えます作業者ロールにあるコードです:
private void ProcessQueueMessage(object queueMessageToProcess)
{
var queueMessage = queueMessageToProcess as EventCompletedQueueMessage;
try
{
if (_eventCompletedProcessor.Process(queueMessage))
_azureQueue.DeleteMessage(queueMessage);
}
catch (Exception ex)
{
_logger.LogError(string.Format("Event Completed message <{0}> was not processed due to an exception", queueMessage.Id), ex, LogSources.WorkerRole_EventCompletedDispatcher);
}
}
上記の例外は、上記のcatchブロックで捕捉され、記録されます。
作業者の役割がキュー内のメッセージを削除しようとしたときにメッセージが見つからないときに問題があると思います。
このエラーを解決し、ここで何が問題になっているのかを知る助けが必要です。コメントに尋ね
いくつかの質問:
1)あなたのWorkerロールの複数のインスタンスを実行していますか?
A:これは既存のアプリケーションであり、ThreadPoolを使用して、事前にインスタンス化することができます。
2)どのように作業者の役割でメッセージを「取得していますか?どのインスタンスがメッセージを受け取るかを決めるために、ある種のリーダー選挙パターンを使用していますか?
A:はい処理するQueueMessageの適切なディスパッチャを決定するフレームワークがあります。
3)メッセージを受け取ったとき、そのメッセージの表示時間のタイムアウトはどのくらいですか?
A:あなたはすなわち、どのくらいの時間メッセージを取得し、メッセージを削除する間、これらのメッセージを処理するために120
4)へのセットがどのくらいの時間がかかりますか?
A:これについてはわかりません。
ごくわずかです(質問をこれらの回答に更新してください):1)あなたのワーカーロールの複数のインスタンスを実行していますか? 2)あなたはどのようにあなたの職員の役割のメッセージを「取得していますか?どのインスタンスがメッセージを受け取るかを決めるために、ある種のリーダー選挙パターンを使用していますか? 3)メッセージを受け取ったとき、そのメッセージの可視性のタイムアウトは何ですか? 4)これらのメッセージを処理するにはどのくらいの時間がかかります。つまり、メッセージを取得してからメッセージを削除するまでにどれくらい時間がかかりますか? –
@GauravMantriが質問を編集しました。チェックしてください。 – Maninder