クラウド サービスと、2 つのパーティションを持つイベント ハブがあります。私のクラウド サービスは、Azure Storage に書き込むワーカー ロールです。イベント ハブから受信したすべてのメッセージを書き込みます。
Azure Emulator を使用すると、worker ロールは正常に動作し、運用環境の Azure Storage に書き込みます (dev ではなく、同じ Azure Storage です)。
Worker ロールをクラウド サービスにプッシュすると、Application Insight からこの種のエラーが表示されます (100% 成功した呼び出し: false)。IntelliTrace ログを使用すると、409 競合が発生しました。
リモートデバッグを試みましたが、非常に遅いため、「次のステップ」を待つよりもコードを書き直す時間が短くなります...
コード内のすべてのリース管理を削除しましたが、何も変わっていません...
チェックポイントの問題に関連していると強く信じています..
_host = new EventProcessorHost(Environment.MachineName, eventHubName, consumerGroupName, eventHubConnectionString, checkpointConnectionString);
このメソッドでチェックポイントを使用します (HandledEventProcessor で)
public async Task ProcessEventsAsync(PartitionContext context, IEnumerable<EventData> events)
{
try
{
foreach (EventData eventData in events)
{
var eventName = eventData.GetEventName();
var handlers = _handlerFactory.GetHandlers(eventName);
if (handlers.Any())
{
foreach (var handler in handlers)
{
SafelyHandleEvent(handler, eventName, eventData, context);
}
}
else
{
_log.WarnEvent("NoEventHandlers",
new Facet { Name = "eventName", Value = eventName });
}
}
await context.CheckpointAsync(); <--- Checkpoint here
}
catch (Exception ex)
{
_log.ErrorEvent("ProcessEventsFailed", ex,
new Facet { Name = "eventCount", Value = events.Count() },
new Facet { Name = "eventHubPath", Value = context.EventHubPath },
new Facet { Name = "partitionId", Value = context.Lease.PartitionId });
}
}
アプリケーション インサイト ログ
23/4/2016 10:35:01 - DEPENDENCY Azure BLOB: myblobStorage/myContainer 依存期間: 2.84 ミリ秒 呼び出しの成功: false URL: https://****.blob.core.windows.net:443/myContainer/ myConsumerGroupName/partition1
23/4/2016 10:35:01 - DEPENDENCY Azure BLOB: myblobStorage/myContainer 依存期間: 2.84 ミリ秒 呼び出しの成功: false URL: https://****.blob.core.windows.net:443/myContainer/ myConsumerGroupName/partition0
23/4/2016 10:34:59 - 依存 Azure BLOB: myblobStorage/myContainer 依存期間: 4.4 ミリ秒成功した呼び出し: falseURL: https://****.blob.core.windows.net:443/myContainer/myConsumerGroupName/ 1?comp=リース&タイムアウト=10
23/4/2016 10:34:59 - 依存 Azure BLOB: myblobStorage/myContainer 依存期間: 4.4 ミリ秒成功した呼び出し: falseURL: https://****.blob.core.windows.net:443/myContainer/myConsumerGroupName/ 0?comp=リース&タイムアウト=10
私はこれを捕まえませんでした.誰かがアイデアを持っていれば、それは大歓迎です...
どんな助けでも大歓迎です。