public Task SubscribeAsync <T>(string topic, Action <T> handlerAction, HandleBy handleBy) { if (handleBy == HandleBy.AllInstances) { _consumerConfig.GroupId = $"{_consumerConfig.GroupId}-{Guid.NewGuid()}"; } using var consumer = new ConsumerBuilder <Ignore, T>(_consumerConfig).Build(); consumer.Subscribe(topic); Console.WriteLine($"Consumer subscribed on {topic} topic and waiting for messages"); while (true) { try { var consumeResult = consumer.Consume(); if (consumeResult != null) { handlerAction(consumeResult.Message.Value); } } catch (Exception e) { Console.WriteLine(e); break; } } consumer.Close(); return(Task.CompletedTask); }
private void BindingProcedureAndUserGroup() { //Node submit = myWorkflowGraph.GetNodeByName("Submit"); //Node cseGroup = myWorkflowGraph.GetNodeByName("CSE"); //Edge newEdge = new HandleBy(); //myWorkflowGraph.AddEdge(submit, cseGroup, newEdge); //newEdge = new Incharge(); //myWorkflowGraph.AddEdge(cseGroup, submit, newEdge); Node ticketCheck = myWorkflowGraph.GetNodeByName(ProcedureStepEunm.TicketCheck.ToString()); Node interGroup = myWorkflowGraph.GetNodeByName("Interface"); Edge newEdge = new HandleBy(); myWorkflowGraph.AddEdge(ticketCheck, interGroup, newEdge); newEdge = new Incharge(); myWorkflowGraph.AddEdge(interGroup, ticketCheck, newEdge); Node preAnalysis = myWorkflowGraph.GetNodeByName(ProcedureStepEunm.PreAnalysis.ToString()); Node uiGroup = myWorkflowGraph.GetNodeByName("UI"); newEdge = new HandleBy(); myWorkflowGraph.AddEdge(preAnalysis, uiGroup, newEdge); newEdge = new Incharge(); myWorkflowGraph.AddEdge(uiGroup, preAnalysis, newEdge); Node examGroup = myWorkflowGraph.GetNodeByName("Exam"); newEdge = new HandleBy(); myWorkflowGraph.AddEdge(preAnalysis, examGroup, newEdge); newEdge = new Incharge(); myWorkflowGraph.AddEdge(examGroup, preAnalysis, newEdge); Node imageGroup = myWorkflowGraph.GetNodeByName("Imaging"); newEdge = new HandleBy(); myWorkflowGraph.AddEdge(preAnalysis, imageGroup, newEdge); newEdge = new Incharge(); myWorkflowGraph.AddEdge(imageGroup, preAnalysis, newEdge); Node regression = myWorkflowGraph.GetNodeByName(ProcedureStepEunm.Regression.ToString()); Node testGroup = myWorkflowGraph.GetNodeByName("Test Center"); newEdge = new HandleBy(); myWorkflowGraph.AddEdge(regression, testGroup, newEdge); newEdge = new Incharge(); myWorkflowGraph.AddEdge(testGroup, regression, newEdge); Node feedback = myWorkflowGraph.GetNodeByName(ProcedureStepEunm.Feedback.ToString()); Node cseGroup = myWorkflowGraph.GetNodeByName("CSE"); newEdge = new HandleBy(); myWorkflowGraph.AddEdge(feedback, cseGroup, newEdge); newEdge = new Incharge(); myWorkflowGraph.AddEdge(cseGroup, feedback, newEdge); }