.net core 如何确保API是;“热身”;在第一次请求之前?

.net core 如何确保API是;“热身”;在第一次请求之前?,.net-core,xamarin.android,kestrel,.net Core,Xamarin.android,Kestrel,我有一个xamarin android应用程序,它向托管在.net core(Windows服务器上的IIS)上的api发出请求。初始请求总是需要很长时间才能加载(可能是因为某些预热过程)。如何确保API在用户需要发出请求时准备就绪 我是否只是在应用程序启动时发出快速异步get/post请求?这似乎很有效…您需要对API使用运行状况检查: public class ExampleHealthCheck : IHealthCheck { public ExampleHealthCheck(

我有一个xamarin android应用程序,它向托管在.net core(Windows服务器上的IIS)上的api发出请求。初始请求总是需要很长时间才能加载(可能是因为某些预热过程)。如何确保API在用户需要发出请求时准备就绪


我是否只是在应用程序启动时发出快速异步get/post请求?这似乎很有效…

您需要对API使用运行状况检查:

public class ExampleHealthCheck : IHealthCheck
{
    public ExampleHealthCheck()
    {
        // Use dependency injection (DI) to supply any required services to the
        // "warmed up" check.
    }

    public Task<HealthCheckResult> CheckHealthAsync(
    HealthCheckContext context, 
         CancellationToken cancellationToken = default(CancellationToken))
    {
        // Execute "warmed up" check logic here.

        var healthCheckResultHealthy = true;

        if (healthCheckResultHealthy)
        {
            return Task.FromResult(
            HealthCheckResult.Healthy("The check indicates a healthy result."));
        }

        return Task.FromResult(
        HealthCheckResult.Unhealthy("The check indicates an unhealthy result."));
    }
}

链接到文档:

这是计算机的工作方式。你用闪屏来掩盖它,你以前见过。我知道我可以这样做,但我控制服务器和应用程序,我能不能让这个过程比事先打不必要的电话更有效?比如让api从早上8点一直预热到晚上9点?(用户的工作时间)我想在使用容器化的.net core appsHow时,健康检查是不可避免的。你会预热IWarmUpRedis类中的代码吗?我无法在//执行“预热”检查逻辑时获取内核。line,你怎么解决这个问题?
public void ConfigureServices(IServiceCollection services)
{
    services.AddHealthChecks()
        .AddCheck<ExampleHealthCheck>("example_health_check");
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
    app.UseHealthChecks("/health");
}