Tengo este servicio de trabajadores iniciando trabajos, pero cada hora busca trabajos. ¿Cómo puedo hacer que verifique la hora en lugar del tiempo de ejecución cada hora?
public class WorkerService: BackgroundService
{
private const int generalDelay = 20; //minutes
protected override async Task ExecuteAsync(CancellationToken stoppingToken)
{
while (!stoppingToken.IsCancellationRequested)
{
await Task.Delay(generalDelay * 60000, stoppingToken);
await DoBackupAsync();
}
}
private static Task DoBackupAsync()
{
DoWork d = new DoWork();
return Task.FromResult("Done");
}
}
Principalmente por esto, sé cuándo se ejecutarán los trabajos y puedo predecir, así como programar mis actualizaciones entre los tiempos de ejecución y si todos los trabajos se completan.
Solución del problema
Si desea verificar la hora actual, puede usar
var datetime = DateTime.UtcNow
que tomará el DateTime actual, y luego puede usar
datetime.Hour
para obtener el valor de la hora actual para que pueda usarlo para verificar.
No hay comentarios.:
Publicar un comentario