Files
tiku-backend.net/Tiku.Infrastructure/Observability/DependencyReadinessProbe.cs

19 lines
735 B
C#

using Microsoft.EntityFrameworkCore;
using Tiku.Application.Security;
using Tiku.Infrastructure.Persistence;
using Tiku.Infrastructure.Security;
namespace Tiku.Infrastructure.Observability;
internal sealed class DependencyReadinessProbe(
TikuDbContext dbContext,
IRedisSecurityStore redisSecurityStore) : IDependencyReadinessProbe
{
public async Task<DependencyReadiness> CheckAsync(CancellationToken cancellationToken = default)
{
var database = await dbContext.Database.CanConnectAsync(cancellationToken);
var redis = !redisSecurityStore.IsConfigured || await redisSecurityStore.PingAsync(cancellationToken);
return new DependencyReadiness(database && redis, DateTimeOffset.UtcNow);
}
}