Skip to content

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 DownloadsNuGet VersionBuild StatusDocumentationDiscordOpenCollective


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

varbuilder=WebApplication.CreateBuilder(args);builder.Services.AddTickerQ();varapp=builder.Build();app.UseTickerQ();app.Run();

2. Create a job

usingTickerQ.Utilities.Base;publicclassMyJobs{[TickerFunction("HelloWorld")]publicasyncTaskHelloWorld(TickerFunctionContextcontext,CancellationTokencancellationToken){Console.WriteLine($"Hello from TickerQ! Job ID: {context.Id}");}}

3. Schedule it

publicclassMyService(ITimeTickerManager<TimeTickerEntity>manager){publicasyncTaskSchedule(){awaitmanager.AddAsync(newTimeTickerEntity{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

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.

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages