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:
appsettings.json).
appsettings.json, jak často (nebo kdy) se má úloha spouštět. Je možné
zadat hodnotu ve formátu pro objekt typu TimeSpan, nebo jako cron
expression specifický přímo pro Quartz.NET. Cron
examples.
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.
AddQuartz(...). Do této funkce po vzoru ostatních úloh doplňte odkaz na úlohu. Přepis funkce je
q.AddTriggeredJob(Configuration, "Your:Path:To:Time:Configuration", bool). Pokud chcete ve vaší funkci použít cron
expressions, tak jako poslední parametr zadejte hodnotu true, jinak false.