Skip to main content
net10.0

A lightweight, developer-friendly library for queuing and executing cron and time-based jobs in the background.

Published
Nov 20, 2025
11mo ago
Total Downloads
1.2M
1,204,191

Install

dotnet add package TickerQ --version 10.0.0-beta.18
ProductVersions
.NET
net10.0

README

TickerQ

Discord Community

NuGet NuGet Build NuGet Packages Documentation

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

Repo: https://github.com/Arcenox-co/TickerQ-UI (docs are open-source and anyone can help us improving.)

Note: As of v2.2.0, 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.


✨ 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.


🀝 Contribution

PRs, ideas, and issues are welcome!

  1. Fork & branch
  2. Code your change
  3. Submit a Pull Request

πŸ“„ License

MIT OR Apache 2.0 Β© Arcenox
You may choose either license to use this software.

Changes from Previous Version

No structural changes between v10.0.0-beta.17 and v10.0.0-beta.18.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 1 target framework; confirm the exact target used by your application.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.