Arcenox-co/TickerQ

TickerQ is a fast, reflection-free background task scheduler for .NET built with source generators, EF Core integration, cron + time-based execution, and a real-time dashboard.

C#

3,647

434 commits

updated Oct 13, 2026

See the code

README

TickerQ Logo
TickerQ

The modern job scheduler for .NET
Source-generated task scheduling with built-in persistence, cron & time-based execution, and real-time monitoring.

NuGet Downloads NuGet Version Build Status Documentation Discord OpenCollective


Why TickerQ?

Zero reflection, AOT readySource generators at compile time. No runtime reflection, no magic strings, fully trimmable.
Your databaseEF Core (PostgreSQL, SQL Server, SQLite, MySQL) or Redis. No separate storage.
Real-time dashboardBuilt-in SignalR dashboard. Monitor, inspect, manage — no paid add-ons.
Multi-nodeRedis heartbeats, dead-node cleanup, lock-based coordination. Just add instances.
Minimal setupAddTickerQ() → decorate a method → schedule. Minutes, not hours.

Features

  • Time & cron scheduling — one-off and recurring jobs
  • Source-generated — compile-time function registration for maximum performance
  • Dual persistence — EF Core (PostgreSQL, SQL Server, SQLite, MySQL) or Redis
  • Live dashboard — real-time UI with SignalR — screenshots
  • Retry & throttling — configurable retry policies with backoff
  • Dependency injection — first-class DI support
  • Multi-node — distributed coordination via Redis heartbeats and dead-node cleanup
  • Hub — centralized scheduling across applications via TickerQ Hub

Quick Start

dotnet add package TickerQ

1. Register services

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddTickerQ();

var app = builder.Build();
app.UseTickerQ();
app.Run();

2. Create a job

using TickerQ.Utilities.Base;

public class MyJobs
{
    [TickerFunction("HelloWorld")]
    public async Task HelloWorld(
        TickerFunctionContext context,
        CancellationToken cancellationToken)
    {
        Console.WriteLine($"Hello from TickerQ! Job ID: {context.Id}");
    }
}

3. Schedule it

public class MyService(ITimeTickerManager<TimeTickerEntity> manager)
{
    public async Task Schedule()
    {
        await manager.AddAsync(new TimeTickerEntity
        {
            Function = "HelloWorld",
            ExecutionTime = DateTime.UtcNow.AddSeconds(10)
        });
    }
}

Packages

PackageDescription
TickerQCore scheduler engine
TickerQ.UtilitiesShared types, entities, and interfaces
TickerQ.EntityFrameworkCoreEF Core persistence provider
TickerQ.Caching.StackExchangeRedisRedis persistence and distributed coordination
TickerQ.DashboardReal-time dashboard UI
TickerQ.Instrumentation.OpenTelemetryOpenTelemetry tracing
TickerQ.SourceGeneratorCompile-time function registration

Note: All packages are versioned together. Always update all packages to the same version.

TickerQ Hub

Centralized scheduling across applications — hub.tickerq.net

Documentation

Full documentation at tickerq.net — docs are open-source at TickerQ-UI.

Sponsors & Backers

Support TickerQ through OpenCollective.

Contributing

PRs, ideas, and issues are welcome! Please read our Contributing Guide and sign the CLA before submitting a pull request.

Contributors

Thanks to all our wonderful contributors! See CONTRIBUTORS.md for details.

License

Dual licensed under MIT and Apache 2.0 © Arcenox LLC

background-processing
dotnet
job-scheduler
open-source
real-time-dashboard

Arcenox-co/TickerQ

TickerQ is a fast, reflection-free background task scheduler for .NET built with source generators, EF Core integration, cron + time-based execution, and a real-time dashboard.

C#

3,647

434 commits

updated Oct 13, 2026

See the code

README

TickerQ Logo
TickerQ

The modern job scheduler for .NET
Source-generated task scheduling with built-in persistence, cron & time-based execution, and real-time monitoring.

NuGet Downloads NuGet Version Build Status Documentation Discord OpenCollective


Why TickerQ?

Zero reflection, AOT readySource generators at compile time. No runtime reflection, no magic strings, fully trimmable.
Your databaseEF Core (PostgreSQL, SQL Server, SQLite, MySQL) or Redis. No separate storage.
Real-time dashboardBuilt-in SignalR dashboard. Monitor, inspect, manage — no paid add-ons.
Multi-nodeRedis heartbeats, dead-node cleanup, lock-based coordination. Just add instances.
Minimal setupAddTickerQ() → decorate a method → schedule. Minutes, not hours.

Features

  • Time & cron scheduling — one-off and recurring jobs
  • Source-generated — compile-time function registration for maximum performance
  • Dual persistence — EF Core (PostgreSQL, SQL Server, SQLite, MySQL) or Redis
  • Live dashboard — real-time UI with SignalR — screenshots
  • Retry & throttling — configurable retry policies with backoff
  • Dependency injection — first-class DI support
  • Multi-node — distributed coordination via Redis heartbeats and dead-node cleanup
  • Hub — centralized scheduling across applications via TickerQ Hub

Quick Start

dotnet add package TickerQ

1. Register services

var builder = WebApplication.CreateBuilder(args);

builder.Services.AddTickerQ();

var app = builder.Build();
app.UseTickerQ();
app.Run();

2. Create a job

using TickerQ.Utilities.Base;

public class MyJobs
{
    [TickerFunction("HelloWorld")]
    public async Task HelloWorld(
        TickerFunctionContext context,
        CancellationToken cancellationToken)
    {
        Console.WriteLine($"Hello from TickerQ! Job ID: {context.Id}");
    }
}

3. Schedule it

public class MyService(ITimeTickerManager<TimeTickerEntity> manager)
{
    public async Task Schedule()
    {
        await manager.AddAsync(new TimeTickerEntity
        {
            Function = "HelloWorld",
            ExecutionTime = DateTime.UtcNow.AddSeconds(10)
        });
    }
}

Packages

PackageDescription
TickerQCore scheduler engine
TickerQ.UtilitiesShared types, entities, and interfaces
TickerQ.EntityFrameworkCoreEF Core persistence provider
TickerQ.Caching.StackExchangeRedisRedis persistence and distributed coordination
TickerQ.DashboardReal-time dashboard UI
TickerQ.Instrumentation.OpenTelemetryOpenTelemetry tracing
TickerQ.SourceGeneratorCompile-time function registration

Note: All packages are versioned together. Always update all packages to the same version.

TickerQ Hub

Centralized scheduling across applications — hub.tickerq.net

Documentation

Full documentation at tickerq.net — docs are open-source at TickerQ-UI.

Sponsors & Backers

Support TickerQ through OpenCollective.

Contributing

PRs, ideas, and issues are welcome! Please read our Contributing Guide and sign the CLA before submitting a pull request.

Contributors

Thanks to all our wonderful contributors! See CONTRIBUTORS.md for details.

License

Dual licensed under MIT and Apache 2.0 © Arcenox LLC

background-processing
dotnet
job-scheduler
open-source
real-time-dashboard

Project health

NuGet

Latest release

10.4.0 · May 12, 2026

Releases this year

37

Significant stargazers

Kristian Hellang

906 followers · starred Jun 2025

Stuart Lang

169 followers · starred Jan 2026

Benjamin Höglinger-Stelzer

1,601 followers · starred Jul 2025

Jason Finch

39 followers · starred Apr 2025