2016-04-07 4 views
1

の後にメッセージを削除しません。ここでのシナリオは、サービスバスキューとWebジョブがあることです。 Webジョブは、サービスバスのキューからメッセージを読み取り、次にロジックを呼び出して、それ以降は他の処理を行います。サービスバスからのAzure Webジョブ読み取りメッセージは、

私たちが直面している問題は、Webジョブがサービスバスからメッセージを読み込んだ後、時々それを削除しないため、ロジックアプリケーションが常に呼び出され、データベースにデータをあふれさせるということです。ここで

は紺碧の管理スタジオから見た問題のメッセージです:

https://gyazo.com/7f57b460421d1bb4a69fcb8b5a9ff01f

あなたが見ることができるように、何のロック時間がメッセージにありません。私は無駄に設定で遊んでしようとしました。

azure管理スタジオからそのメッセージを手動で削除しようとすると、失敗してもエラーメッセージは表示されません。

ここで何が起こっているのか分かりませんか?私が使用した2-3のツールはキューからこのメッセージを削除することができないので、これは私たちのコードのバグではなく、キューそのものに問題があるように感じます。

メッセージは特定の時間の後にのみ削除されるようです(ただし、デッドレターキューには行かない)。

おかげ

+0

ur Webジョブでmessage.Complete()を呼び出しようとしましたか? – Helikaon

+0

はい私はそれを試みて、それはまだ多くの行を生成します。私はこれがwebjobがアクティブな何らかの理由で同時スレッドと関係があると考えています。 – Martinos

答えて

1

はそうちょうどについては、私は自分の問題を考え出しました。ファイルスクレイパージョブが実行されると、サービスバスにメッセージが書き込まれます。実行され、そのファイルをピックアップするwebjobは、ブロブストレージだけでなくローカルで取得したファイルを格納します。

問題はwebjobがローカルで処理するもののキューを保持していたため、Webjobが実行されるたびにすべての以前のファイルも処理されていたためです。

関連する問題