2017-12-19 3 views
0

I WebJob die Bindungen EventHub bin mit wie hier beschrieben: https://github.com/Azure/azure-webjobs-sdk/wiki/EventHub-supportSo legen Sie die EventHub-Consumer-Gruppe in einem WebJob fest?

Während die webjob ausgeführt wird, in dieser Ausnahme die Azure Service Bus Explorer auf dem gleichen Hub Ergebnis zu laufen versuchen:

Exception: A receiver with a higher epoch '14' already exists. A new receiver with epoch 0 cannot be created. 
Make sure you are creating receiver with increasing epoch value to ensure connectivity, or ensure all old epoch receivers are closed or disconnected. 

Von dem, was ich verstehe, Dies wird durch die 2 Listener (Web-Job & Bus-Explorer) mit der gleichen Consumer-Gruppe verursacht.

Also meine Frage, wie kann ich eine andere Consumer Group in meinem Webjob angeben?

Meine aktuellen Code sieht wie folgt aus:

Program.cs:

var config = new JobHostConfiguration() 
{ 
    NameResolver = new NameResolver() 
}; 

string eventHubConnectionString = ConfigurationManager.ConnectionStrings["EventHub"].ConnectionString; 
string eventHubName = ConfigurationManager.AppSettings["EventHubName"]; 
string eventProcessorHostStorageConnectionString = ConfigurationManager.ConnectionStrings["EventProcessorHostStorage"].ConnectionString; ; 

var eventHubConfig = new EventHubConfiguration(); 
eventHubConfig.AddReceiver(eventHubName, eventHubConnectionString, eventProcessorHostStorageConnectionString); 
config.UseEventHub(eventHubConfig); 

var host = new JobHost(config); 

host.RunAndBlock(); 

Functions.cs:

public class Functions 
    { 
     public static void Trigger([EventHubTrigger("%EventHubName%")] string message, TextWriter log) 
     { 
      log.WriteLine(message); 
     } 
    } 

[Bearbeiten - Bonus-Frage]

I verstehe nicht die Verwendung von Consumer Group und "Epoche" Sache. Eine Consumer Group ist auf einen Empfänger beschränkt?

Antwort

0

Die EventHubTrigger hat eine optionale ConsumerGroup Eigenschaft (source). Also, basierend darauf den Trigger wie folgt ändern:

public class Functions 
    { 
     public static void Trigger([EventHubTrigger("%EventHubName%", ConsumerGroup = "MyConsumerGroup")] string message, TextWriter log) 
     { 
      log.WriteLine(message); 
     } 
    } 
+0

Ha, zu einfach :-) Danke –

Verwandte Themen