public static async Task <IActionResult> Health( [HttpTrigger(AuthorizationLevel.Anonymous, "get", "post")] object message, [SignalR(HubName = "simulator")] IAsyncCollector <SignalRMessage> signalRMessages) { var healthy = IsHealthy; // copy now. var hcs = new EndpointHealthCheck(); hcs.EndpointLabel = Environment.GetEnvironmentVariable("EndpointLabel"); hcs.Endpoint = Environment.GetEnvironmentVariable("Endpoint"); // A B or C hcs.StatusCode = healthy ? "200" : "503"; hcs.Ticks = DateTime.UtcNow.Ticks; hcs.Style = healthy ? "success" : "failed"; try { await signalRMessages.AddAsync( new SignalRMessage { Target = "ReceiveEndpointHealthCheckData", Arguments = new[] { hcs } }); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } if (healthy) { return(new OkResult()); } else { return(new StatusCodeResult(503)); } }
public async Task SendEndointStatuResult(EndpointHealthCheck data) { await Clients.All.SendAsync("ReceiveEndpointHealthCheckData", data); }