Trax.Scheduler
1.61.0
Prefix Reserved
dotnet add package Trax.Scheduler --version 1.61.0
NuGet\Install-Package Trax.Scheduler -Version 1.61.0
<PackageReference Include="Trax.Scheduler" Version="1.61.0" />
<PackageVersion Include="Trax.Scheduler" Version="1.61.0" />
<PackageReference Include="Trax.Scheduler" />
paket add Trax.Scheduler --version 1.61.0
#r "nuget: Trax.Scheduler, 1.61.0"
#:package Trax.Scheduler@1.61.0
#addin nuget:?package=Trax.Scheduler&version=1.61.0
#tool nuget:?package=Trax.Scheduler&version=1.61.0
Trax.Scheduler
Part of Trax .NET: business logic you can call, schedule, or serve as an API, with every run recorded in your Postgres. Docs · Getting started · Repository
Trax.Scheduler adds cron schedules, retries, dead letters and remote or Lambda workers for Trax trains. It builds on Trax.Mediator, and Trax.Api and Trax.Dashboard read and manage what it schedules.
Install
dotnet add package Trax.Scheduler
dotnet add package Trax.Effect.Data.Postgres # or Trax.Effect.Data.Sqlite for a single process
Example
Adapted from the game server sample:
builder.Services.AddTrax(trax => trax
.AddEffects(effects => effects.UsePostgres(connectionString))
.AddMediator(typeof(RecalculateLeaderboardTrain).Assembly)
.AddScheduler(scheduler => scheduler
.Schedule<IRecalculateLeaderboardTrain>(
"leaderboard-na",
new RecalculateLeaderboardInput { Region = "na" },
Every.Minutes(5),
options => options.MaxRetries(3))));
Every five minutes the scheduler queues a run with that input and a worker claims it. A failed run retries with backoff, then lands in the dead-letter queue.
Where this fits
Trax is split into layers, one folder of this repository each. Take the ones you need; the trains you wrote do not change. You are here: Trax.Scheduler.
| Folder | What it adds |
|---|---|
| Trax.Core | Trains, junctions and the chain, with no database and no DI container |
| Trax.Effect | A recorded run for every execution (Postgres, SQLite or in memory), DI, effect providers, the state-machine engine |
| Trax.Mediator | The train bus: run a train by handing over its input, with every chain checked at startup |
| Trax.Scheduler | Cron and interval schedules, retries, dead letters, and workers on other machines or in Lambda |
| Trax.Api | GraphQL generated from your trains, with authentication, audit and typed clients |
| Trax.Dashboard | A Blazor Server UI for runs, schedules and dead letters, mounted in your app |
| Trax.Cli | The trax tool: scaffold a hub and trains from an OpenAPI or GraphQL schema, and state-machine codegen |
| Trax.Samples | Complete sample apps, and the trax-api, trax-scheduler and trax-hub templates |
Docs live in Trax.Docs and are published at traxsharp.net/docs.
Contributing
Read AGENTS.md before changing code. Report vulnerabilities privately as described in SECURITY.md.
License
MIT. There is no commercial edition, and there will not be one.
Trax .NET is an independent open-source project and is not affiliated with the Utah Transit Authority, Trax Retail, or any other organization using the Trax name.
| 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
- Cronos (>= 0.13.0)
- Microsoft.EntityFrameworkCore (>= 10.0.12)
- Microsoft.EntityFrameworkCore.Relational (>= 10.0.12)
- Npgsql (>= 10.0.3)
- Trax.Effect (>= 1.61.0)
- Trax.Effect.Data (>= 1.61.0)
- Trax.Mediator (>= 1.61.0)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Trax.Scheduler:
| Package | Downloads |
|---|---|
|
Trax.Api
Core services behind the Trax .NET GraphQL API: health checks, per-train authorization, the HTTP principal provider and the shared DTOs. Trax.Api.GraphQL brings it in; reference it directly only to use those services without the GraphQL schema. |
|
|
Trax.Dashboard
Blazor Server operations dashboard for Trax .NET, mounted into your existing ASP.NET Core host at /trax: trains, run metadata and logs, scheduler manifests and groups, dead letters, the work queue, and runtime effect settings. Install it in the app that already calls AddTrax, then call builder.AddTraxDashboard() and app.UseTraxDashboard(). |
|
|
Trax.Runner.Lambda
Base class for an AWS Lambda function that executes Trax .NET trains invoked directly by a scheduler using Trax.Scheduler.Lambda (UseLambdaWorkers or UseLambdaRun). Install it in the Lambda project that hosts your trains. |
|
|
Trax.Scheduler.Sqs
Amazon SQS transport for Trax.Scheduler: dispatches queued jobs as SQS messages and provides the SQS-triggered Lambda consumer that runs them. Install it when scheduled trains should run on workers fed by an SQS queue. |
|
|
Trax.Scheduler.Lambda
AWS Lambda transport for Trax.Scheduler: dispatches queued jobs and synchronous train runs to an AWS Lambda function by direct SDK invocation. Install it in the scheduler host when your trains run in a Lambda function built on Trax.Runner.Lambda. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.61.0 | 196 | 10/6/2026 |
| 1.37.0 | 274 | 10/6/2026 |
| 1.36.1 | 248 | 10/5/2026 |
| 1.36.0 | 394 | 10/4/2026 |
| 1.35.0 | 216 | 10/2/2026 |
| 1.34.2 | 231 | 10/1/2026 |
| 1.34.1 | 364 | 9/29/2026 |
| 1.34.0 | 398 | 9/28/2026 |
| 1.33.0 | 378 | 9/25/2026 |
| 1.32.2 | 505 | 9/24/2026 |
| 1.32.1 | 807 | 9/16/2026 |
| 1.32.0 | 1,130 | 9/15/2026 |
| 1.31.0 | 2,774 | 7/29/2026 |
| 1.30.0 | 283 | 7/7/2026 |
| 1.29.0 | 5,177 | 5/8/2026 |
| 1.28.0 | 238 | 5/4/2026 |
| 1.27.0 | 823 | 4/15/2026 |
| 1.26.0 | 292 | 4/3/2026 |
| 1.25.1 | 181 | 4/3/2026 |
| 1.25.0 | 307 | 4/3/2026 |