Sobes.tech
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.