Cílem plánovaných úloh je provádění automatických operací bez interakce uživatele.

GrillBot má aktuálně integrovány následující plánované úlohy:

Kromě výše uvedených časů se úlohy, které nejsou definovány pomocí cron expression, spouští ještě při startu aplikace. Tyto úlohy se nastavují v konfiguračním souboru (appsettings.json).

Vytvoření nové naplánované úlohy

using Quartz;
using GrillBot.Infrastructure.Jobs;

[DisallowConcurrentExecution]
public class YourJob : Job
{
    public YourJob(IServiceProvider provider) : base(provider)
    {
    }

    public override async Task RunAsync(IJobExecutionContext context)
    {
        // Your implementation
    }
}

Doporučuje se na úlohy atribut DisallowConcurrentExecution, aby nedošlo k paralelnímu spuštění jedné úlohy. Pokud chcete, aby úloha nebyla spuštěna, než dojde ke kompletní inicializaci bota, tak stačí nastavit na třídu úlohy atribut DisallowUninitialized. Do úlohy je možné vkládat závislosti pomocí konstruktoru z DI kontejneru. Již je tak třeba naimportovat služby pro základní chod úlohy.