# TickerQ
**Repository Path**: leeinc/TickerQ
## Basic Information
- **Project Name**: TickerQ
- **Description**: No description available
- **Primary Language**: C#
- **License**: Apache-2.0
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 1
- **Created**: 2026-05-12
- **Last Updated**: 2026-05-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
TickerQ
The modern job scheduler for .NET
Source-generated task scheduling with built-in persistence, cron & time-based execution, and real-time monitoring.
---
## 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](https://tickerq.net/features/dashboard.html#dashboard-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](https://hub.tickerq.net)
## Quick Start
```bash
dotnet add package TickerQ
```
### 1. Register services
```csharp
var builder = WebApplication.CreateBuilder(args);
builder.Services.AddTickerQ();
var app = builder.Build();
app.UseTickerQ();
app.Run();
```
### 2. Create a job
```csharp
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
```csharp
public class MyService(ITimeTickerManager manager)
{
public async Task Schedule()
{
await manager.AddAsync(new TimeTickerEntity
{
Function = "HelloWorld",
ExecutionTime = DateTime.UtcNow.AddSeconds(10)
});
}
}
```
## Packages
| Package | Description |
|---------|------------|
| [`TickerQ`](https://www.nuget.org/packages/TickerQ) | Core scheduler engine |
| [`TickerQ.Utilities`](https://www.nuget.org/packages/TickerQ.Utilities) | Shared types, entities, and interfaces |
| [`TickerQ.EntityFrameworkCore`](https://www.nuget.org/packages/TickerQ.EntityFrameworkCore) | EF Core persistence provider |
| [`TickerQ.Caching.StackExchangeRedis`](https://www.nuget.org/packages/TickerQ.Caching.StackExchangeRedis) | Redis persistence and distributed coordination |
| [`TickerQ.Dashboard`](https://www.nuget.org/packages/TickerQ.Dashboard) | Real-time dashboard UI |
| [`TickerQ.Instrumentation.OpenTelemetry`](https://www.nuget.org/packages/TickerQ.Instrumentation.OpenTelemetry) | OpenTelemetry tracing |
| [`TickerQ.SourceGenerator`](https://www.nuget.org/packages/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](https://hub.tickerq.net)
## Documentation
Full documentation at **[tickerq.net](https://tickerq.net)** — docs are open-source at [TickerQ-UI](https://github.com/Arcenox-co/TickerQ-UI).
## Sponsors & Backers
Support TickerQ through [OpenCollective](https://opencollective.com/tickerq).
## Contributing
PRs, ideas, and issues are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) and sign the [CLA](CLA.md) before submitting a pull request.
## Contributors
Thanks to all our wonderful contributors! See [CONTRIBUTORS.md](CONTRIBUTORS.md) for details.
## License
Dual licensed under **MIT** and **Apache 2.0** © [Arcenox LLC](https://arcenox.com)