TickerQTickerQ
GuidesDefining Jobs

ITickerFunction Interface

Class-based handlers registered programmatically with MapTicker.

Available in version *.3.0 or later.

Implement ITickerFunction and register with MapTicker<T>() for programmatic control.

Without payload

public class CleanupJob : ITickerFunction
{
    public async Task ExecuteAsync(TickerFunctionContext context, CancellationToken ct)
    {
        // cleanup logic
    }
}
Program.cs
builder.Services.MapTicker<CleanupJob>();

With typed payload

Implement ITickerFunction<TRequest>:

public class EmailJob : ITickerFunction<EmailPayload>
{
    private readonly IMailer _mailer;
    public EmailJob(IMailer mailer) => _mailer = mailer;

    public async Task ExecuteAsync(TickerFunctionContext<EmailPayload> context, CancellationToken ct)
    {
        await _mailer.SendAsync(context.Request.To, ct);
    }
}
Program.cs
builder.Services.MapTicker<EmailJob, EmailPayload>();

Builder options

Every MapTicker call returns a TickerFunctionBuilder for further configuration:

Program.cs
builder.Services.MapTicker<ProcessOrderJob, OrderPayload>()
    .WithCron("*/5 * * * *")
    .WithMaxConcurrency(3)
    .WithPriority(TickerTaskPriority.High);
MethodDescription
.WithCron(string)Attach a cron schedule (auto-seeded on startup)
.WithMaxConcurrency(int)Limit parallel executions
.WithPriority(TickerTaskPriority)Set execution priority

On this page