Junior — Middle
Que sistemas de planeamento de tarefas utilizou nos seus projetos?
sobes.tech IA
Resposta da IA
Nos projetos em C# para agendamento de tarefas, frequentemente utilizam-se os seguintes sistemas e bibliotecas:
- Quartz.NET — um agendador de tarefas poderoso com suporte para expressões cron, gatilhos e horários complexos.
- Hangfire — uma biblioteca para tarefas em segundo plano com capacidade de reexecução, monitorização e gestão através de uma interface web.
- Task Scheduler (Windows) — para executar tarefas agendadas ao nível do sistema operativo.
- Timer e Task da biblioteca padrão do .NET — para tarefas simples periódicas ou adiadas.
Exemplo de agendamento simples com Quartz.NET:
IScheduler scheduler = await StdSchedulerFactory.GetDefaultScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<MyJob>()
.WithIdentity("job1", "group1")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger1", "group1")
.StartNow()
.WithSimpleSchedule(x => x.WithIntervalInMinutes(5).RepeatForever())
.Build();
await scheduler.ScheduleJob(job, trigger);
A escolha depende dos requisitos de fiabilidade, complexidade do horário e infraestrutura do projeto.