예제 #1
0
 public PodController(
     MicroserviceSettings settings,
     ILivenessProbe livenessProbe)
 {
     _settings      = settings;
     _livenessProbe = livenessProbe;
 }
예제 #2
0
 public async Task Invoke(HttpContext httpContext, IServiceProvider services)
 {
     if (httpContext.Request.Path.StartsWithSegments("/probes/liveness"))
     {
         ILivenessProbe probe = GetLivenessProbe(services);
         if (await probe.ShouldRestartAsync())
         {
             httpContext.Response.StatusCode = (int)HttpStatusCode.ServiceUnavailable;
         }
         else
         {
             httpContext.Response.StatusCode = (int)HttpStatusCode.OK;
         }
     }
     else
     {
         await Next.Invoke(httpContext);
     }
 }