TickerQ 10.0.2
dotnet add package TickerQ --version 10.0.2
NuGet\Install-Package TickerQ -Version 10.0.2
<PackageReference Include="TickerQ" Version="10.0.2" />
<PackageVersion Include="TickerQ" Version="10.0.2" />
<PackageReference Include="TickerQ" />
paket add TickerQ --version 10.0.2
#r "nuget: TickerQ, 10.0.2"
#:package TickerQ@10.0.2
#addin nuget:?package=TickerQ&version=10.0.2
#tool nuget:?package=TickerQ&version=10.0.2
<h1 align="center">TickerQ</h1>
<p align="center"> <img src="https://tickerq.net/tickerq-logo.png" alt="TickerQ Logo" width="200" /> </p>
Robust. Adaptive. Precise.
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.
๐ Full Docs: https://tickerq.net
(Docs are open-source and anyone can help us improving Documentation Repository
Note: All TickerQ packages are versioned together โ even if a package has no changes โ to keep the ecosystem in sync. Always update all packages to the same version.
Important: The entire 2.* package line is deprecated, considered legacy, and is no longer maintained. For all current and future development, use the .NET 8+ versions of TickerQ.
โจ Features
- Time and cron scheduling for one-off and recurring jobs
- Reflection-free core with source-generated job handlers
- EF Core persistence for jobs, state, and history
- Live Dashboard UI - View Screenshots
- Retry policies & throttling for robust execution
- First-class dependency injection support
- Multi-node distributed coordination (via Redis heartbeats and dead-node cleanup)
Quick Start
Get up and running with TickerQ in under 5 minutes.
Prerequisites
- .NET 8.0 or later
- A .NET project (Console, Web API, or ASP.NET Core)
Step 1: Install TickerQ
dotnet add package TickerQ
Step 2: Register Services
Add TickerQ to your Program.cs:
using TickerQ.DependencyInjection;
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddTickerQ();
var app = builder.Build();
app.UseTickerQ(); // Activate job processor
app.Run();
Step 3: Create a Job Function
Create a job function with the [TickerFunction] attribute:
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}");
Console.WriteLine($"Scheduled at: {DateTime.UtcNow:HH:mm:ss}");
}
}
Step 4: Schedule the Job
Inject the manager and schedule your job:
using TickerQ.Utilities.Entities;
using TickerQ.Utilities.Interfaces.Managers;
public class MyService
{
private readonly ITimeTickerManager<TimeTickerEntity> _timeTickerManager;
public MyService(ITimeTickerManager<TimeTickerEntity> timeTickerManager)
{
_timeTickerManager = timeTickerManager;
}
public async Task ScheduleJob()
{
var result = await _timeTickerManager.AddAsync(new TimeTickerEntity
{
Function = "HelloWorld",
ExecutionTime = DateTime.UtcNow.AddSeconds(10) // Run in 10 seconds
});
if (result.IsSucceeded)
{
Console.WriteLine($"Job scheduled! ID: {result.Result.Id}");
}
}
}
Step 5: Run Your Application
dotnet run
Wait 10 seconds and you should see:
Job scheduled! ID: {guid}
Hello from TickerQ! Job ID: {guid}
Scheduled at: {time}
๐ Sponsors & Backers
We want to acknowledge the individuals and organizations who support the development of TickerQ through OpenCollective. Your contributions help us maintain and grow this project. If you'd like to support, check out the tiers below and join the community!
Become a Sponsor or Backer on OpenCollective
๐ Gold Sponsors
Become a gold sponsor and get your logo here with a link to your site.
๐ฅ Silver Sponsors
Become a silver sponsor and get your logo here with a link to your site.
๐ฅ Bronze Sponsors
Become a bronze sponsor and get your logo here with a link to your site.
๐ Backers
Become a backer and get your image on our README on GitHub with a link to your site.
<a href="https://opencollective.com/tickerq/backer/0/website?requireActive=false" target="_blank"><img width="30" src="https://opencollective.com/tickerq/backer/0/avatar.svg?requireActive=false"></a>
๐ค Contribution
PRs, ideas, and issues are welcome!
- Fork & branch
- Code your change
- Submit a Pull Request
๐ License
MIT OR Apache 2.0 ยฉ Arcenox
You may choose either license to use this software.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- TickerQ.Utilities (>= 10.0.2)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on TickerQ:
| Package | Downloads |
|---|---|
|
ZhileTime.Hope.TickerQ
Package Description |
|
|
Sparkdo.TickerQ
Sparkdo TickerQ ๅบ๏ผๆไพๅบไบ TickerQ ็ๅฎๆถไปปๅกๅ่ฝ้ๆๅฎ็ฐ |
|
|
Sparkdo.BackgroundWorkers.TickerQ
Sparkdo TickerQ ๅๅฐๅทฅไฝ่ ๅบ๏ผๆไพๅบไบ TickerQ ็ๅๅฐๅทฅไฝ่ ๅ่ฝ้ๆๅฎ็ฐ |
|
|
Sparkdo.BackgroundJobs.TickerQ
Sparkdo TickerQ ๅๅฐไฝไธๅบ๏ผๆไพๅบไบ TickerQ ็ๅๅฐไฝไธๅ่ฝ้ๆๅฎ็ฐ |
|
|
Paramore.Brighter.MessageScheduler.TickerQ
TikcerQ integration for Paramore.Brighter Command Processor. Provides advanced message scheduling capabilities using TikcerQ for background job processing, delayed message delivery, and complex recurring task scheduling. |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on TickerQ:
| Repository | Stars |
|---|---|
|
foxminchan/BookWorm
The practical implementation of Aspire using Microservices, AI-Agents
|
| Version | Downloads | Last Updated |
|---|---|---|
| 10.0.2 | 37 | 12/10/2025 |
| 10.0.1 | 2,768 | 11/27/2025 |
| 10.0.0 | 1,695 | 11/23/2025 |
| 10.0.0-beta.19 | 145 | 11/23/2025 |
| 10.0.0-beta.18 | 543 | 11/20/2025 |
| 10.0.0-beta.17 | 515 | 11/17/2025 |
| 10.0.0-beta.16 | 261 | 11/16/2025 |
| 9.0.2 | 23 | 12/10/2025 |
| 9.0.1 | 1,234 | 11/27/2025 |
| 9.0.0 | 2,263 | 11/23/2025 |
| 9.0.0-beta.19 | 140 | 11/23/2025 |
| 9.0.0-beta.18 | 503 | 11/20/2025 |
| 9.0.0-beta.17 | 674 | 11/17/2025 |
| 9.0.0-beta.15 | 266 | 11/14/2025 |
| 9.0.0-beta.14 | 1,496 | 11/11/2025 |
| 9.0.0-beta.13 | 373 | 11/11/2025 |
| 9.0.0-beta.12 | 266 | 11/10/2025 |
| 9.0.0-beta.11 | 204 | 11/9/2025 |
| 9.0.0-beta.1 | 423 | 11/5/2025 |
| 8.0.2 | 25 | 12/10/2025 |
| 8.0.1 | 541 | 11/27/2025 |
| 8.0.0 | 1,145 | 11/23/2025 |
| 8.0.0-beta.19 | 137 | 11/23/2025 |
| 8.0.0-beta.18 | 372 | 11/20/2025 |
| 8.0.0-beta.17 | 415 | 11/17/2025 |
| 8.0.0-beta.16 | 188 | 11/16/2025 |
| 8.0.0-beta.15 | 195 | 11/14/2025 |
| 8.0.0-beta.14 | 503 | 11/12/2025 |
| 8.0.0-beta.13 | 245 | 11/11/2025 |
| 8.0.0-beta.12 | 217 | 11/10/2025 |
| 8.0.0-beta.11 | 189 | 11/10/2025 |
| 8.0.0-beta.10 | 152 | 11/7/2025 |
| 8.0.0-beta.9 | 120 | 11/7/2025 |
| 8.0.0-beta.8 | 149 | 11/6/2025 |
| 8.0.0-beta.6 | 211 | 11/4/2025 |
| 8.0.0-beta.5 | 161 | 11/3/2025 |
| 8.0.0-beta.4 | 143 | 11/3/2025 |
| 8.0.0-beta.3 | 141 | 11/3/2025 |
| 8.0.0-beta.2 | 149 | 11/3/2025 |
| 8.0.0-beta.1 | 275 | 10/31/2025 |
| 2.5.3 | 61,652 | 9/2/2025 |
| 2.5.3-preview | 1,531 | 8/19/2025 |
| 2.5.2 | 4,022 | 8/27/2025 |
| 2.5.1 | 6,127 | 8/20/2025 |
| 2.5.0 | 1,707 | 8/20/2025 |
| 2.4.4 | 10,960 | 8/7/2025 |
| 2.4.3 | 3,367 | 8/6/2025 |
| 2.4.2 | 1,909 | 8/3/2025 |
| 2.4.1 | 545 | 8/2/2025 |
| 2.4.0 | 1,375 | 8/1/2025 |
| 2.3.0 | 1,374 | 7/7/2025 |
| 2.2.2 | 500 | 6/28/2025 |
| 2.2.2-preview | 165 | 6/26/2025 |
| 2.2.1 | 436 | 6/24/2025 |
| 2.2.1-preview-1 | 161 | 6/24/2025 |
| 2.2.1-preview | 175 | 6/24/2025 |
| 2.2.0 | 1,982 | 6/16/2025 |
| 2.2.0-preview | 181 | 6/17/2025 |
| 2.1.7-preview | 214 | 6/16/2025 |
| 2.1.6-preview | 182 | 6/16/2025 |
| 2.1.5 | 178 | 6/16/2025 |
| 2.1.3 | 182 | 6/14/2025 |
| 2.1.1 | 423 | 6/7/2025 |
| 2.1.0 | 222 | 5/23/2025 |
| 2.0.1 | 565 | 4/25/2025 |
| 2.0.0 | 525 | 4/19/2025 |