0

クラウド サービスと、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

私はこれを捕まえませんでした.誰かがアイデアを持っていれば、それは大歓迎です...

どんな助けでも大歓迎です。

4

1 に答える 1