Skip to content

Arcenox-co/TickerQ

Repository files navigation

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 ready Source generators at compile time. No runtime reflection, no magic strings, fully trimmable.
Your database EF Core (PostgreSQL, SQL Server, SQLite, MySQL) or Redis. No separate storage.
Real-time dashboard Built-in SignalR dashboard. Monitor, inspect, manage — no paid add-ons.
Multi-node Redis heartbeats, dead-node cleanup, lock-based coordination. Just add instances.
Minimal setup AddTickerQ() → 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

Package Description
TickerQ Core scheduler engine
TickerQ.Utilities Shared types, entities, and interfaces
TickerQ.EntityFrameworkCore EF Core persistence provider
TickerQ.Caching.StackExchangeRedis Redis persistence and distributed coordination
TickerQ.Dashboard Real-time dashboard UI
TickerQ.Instrumentation.OpenTelemetry OpenTelemetry tracing
TickerQ.SourceGenerator Compile-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

About

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.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

 
 
 

Contributors