0

我有一個雲服務和一個事件中心與2個分區。 我的雲服務是寫入Azure存儲的工作者角色。它會寫入從Event Hub收到的所有消息。工作角色 - EventProcessorHost CheckPoint似乎是因爲409衝突Azure存儲

使用Azure模擬器時,我的工作者角色正常工作,它在生產環境中寫入Azure存儲(不是開發者,所以它是相同的天藍色存儲)。

當我將我的輔助角色推送到雲服務時,我從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 }); 
     } 
    } 

對Application Insight日誌

23/4/2016 10時35分01秒 - 依賴 Azure的BLOB:myblobStorage/myContainer中 依賴持續時間:2.84毫秒 成功的呼叫:假 網址:https:// **** blob.core.windows.net:443/myContainer/myConsumerGroupName/partition1

23/4/2016 10時35分01秒 - 依賴 Azure的BLOB:myblobStorage/myContainer中 依賴持續時間:2.84毫秒 成功緻電:假 網址:https://****.blob.core.windows.net:443/myContainer中/ myConsumerGroupName/partition0

23/4/2016 10點34分59秒 - 依賴 Azure的BLOB:myblobStorage/myContainer中 依賴持續時間:4.4 msSuccessful呼叫:falseURL:HTTPS://****.blob.core.windows.net:443/myContainer中/ myConsumerGroupName/1排版=租賃&超時= 10

4分之23/ 2016 10:34:59 - DEPENDENCY Azure blob:myblobStorage/myContainer 相關性持續時間:4.4 ms成功調用:falseURL:https://****.blob.core.windows.net:443/myContainer/myConsumerGroupName/0? comp = lease & timeout = 10

我沒趕上這一個...如果有人有一個想法,這是非常可喜的......

任何幫助,將不勝感激。

+0

您是否在部署後立即收到該錯誤,並且是否有任何成功的操作? –

+0

感謝您的幫助!看到我的答案。 –

回答

0

我添加了一個計時器befors調用await context.CheckpointAsync();

我認爲這取決於事件的量,如果await context.CheckpointAsync();被調用多次在短的時間內,這也不行......

,當然還有,我在事件低迷時部署

相關問題