Sparkdo.Scheduler 3.0.0-preview.1

This is a prerelease version of Sparkdo.Scheduler.
dotnet add package Sparkdo.Scheduler --version 3.0.0-preview.1
                    
NuGet\Install-Package Sparkdo.Scheduler -Version 3.0.0-preview.1
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sparkdo.Scheduler" Version="3.0.0-preview.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Sparkdo.Scheduler" Version="3.0.0-preview.1" />
                    
Directory.Packages.props
<PackageReference Include="Sparkdo.Scheduler" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Sparkdo.Scheduler --version 3.0.0-preview.1
                    
#r "nuget: Sparkdo.Scheduler, 3.0.0-preview.1"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Sparkdo.Scheduler@3.0.0-preview.1
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Sparkdo.Scheduler&version=3.0.0-preview.1&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=Sparkdo.Scheduler&version=3.0.0-preview.1&prerelease
                    
Install as a Cake Tool

Sparkdo.Scheduler

Sparkdo Scheduler 的运行时包与默认 in-memory provider。nupkg 同时内嵌 Sparkdo.Scheduler.Generation(Roslyn source generator)作为 analyzer asset。

运行时已包含:SchedulerJobCatalog runtime catalog seam、DefaultScheduler direct enqueue / direct enqueue sharding / schedule once / schedule cron / manual trigger / cancel 路径、显式单轮 ExecutionRunner、descriptor-aware payload serializer seam、默认 JSON payload codec、默认 in-memory provider、异步 store 端口 实现、executor placement claim evaluator、event retention cleanup、trace context snapshot、occurrence 去重、lease renew / stale recovery、startup gate、trigger runner 单轮执行、health/report/diagnostic snapshot、report schema compatibility、 options provenance report、clock drift / SLO / runbook report evidence、默认 redaction、instrumentation bridge、management query/command 最小面和 package asset handoff 的最小闭环。

接线

应用唯一入口是 services.AddScheduler(...),它以 TryAdd 语义声明:

  • SchedulerOptions / SchedulerWorkerOptions;
  • AddSparkdoJsonCore()(Sparkdo.Json 产品域运行时:payload codec 经 IJsonSerializer 门面序列化;宿主先行注册的实现覆盖默认值,payload args 类型必须出现在应用的 [SparkdoJsonContext] context 中,否则首次 payload 序列化 fail closed);
  • 默认 in-memory store 端口(scoped)与 singleton InMemorySchedulerState;
  • SchedulerJobCatalog、IJobPayloadSerializer(默认 JsonJobPayloadSerializer)、 SchedulerRuntimeState、IScheduler、显式 ExecutionRunner;
  • singleton SchedulerWorker 与 SchedulerWorkerHostedService(IHostedService), 以及 SchedulerWorkerStartupTask / SchedulerWorkerShutdownTask;
  • TimeProvider.System(可替换)与默认 instrumentation hook (ActivitySource("Sparkdo.Scheduler"),可替换);
  • 从全局 SchedulerJobRegistry 自动装配源生成的 IJobContributionProvider: Sparkdo.Scheduler.Generation 生成 [ModuleInitializer],在程序集加载时登记 generated contribution,无需显式注册 Job。

默认 in-memory store 端口保持 scoped,但共享 singleton InMemorySchedulerState, 因此不同 DI scope 中的 enqueue、runner 和 worker 能看到同一份单进程状态。应用可通过 Configure<SchedulerWorkerOptions>(options => options.Enabled = false) 关闭后台循环。

后续 provider 包应替换 IExecutionQueue、IScheduleStore、IExecutorStore、 IHistoryStore、IShardStore 和 ISchedulerStoreDiagnostics,不替换整个 Scheduler runtime。

观测边界

Instrumentation/ 保存 Scheduler signal taxonomy、可替换 hook 和默认 ActivitySource 适配。Scheduler 只负责发低基数 signal 和 metadata,不拥有观测后端; OpenTelemetry exporter 等由宿主接入。无监听者时热路径零分配。

完整使用说明、能力与边界、结果码表见模块根 README;包边界见 docs/package-boundaries.md。

默认 provider 是 in-memory、single-process 实现:适合应用接入、本地开发、测试和契约 验证,不等于持久化、多节点或灾难恢复方案。

Product 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.  net11.0 is compatible. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages (3)

Showing the top 3 NuGet packages that depend on Sparkdo.Scheduler:

Package Downloads
Sparkdo.Scheduler.Testing

Sparkdo Scheduler 测试专用工具:manual clock、simulation、fault injection 与 provider conformance 认证。

Sparkdo.Messaging.Scheduling.Scheduler

Sparkdo Messaging 的调度适配:把 Sparkdo.Scheduler 接成消息的延迟与 Cron 投递。

Sparkdo.Scheduler.EntityFrameworkCore

Sparkdo Scheduler 的通用 Entity Framework Core 持久化 provider。

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
3.0.0-preview.1 75 10/30/2026
2.0.0-preview.2 103 7/20/2026
2.0.0-preview.1 97 7/18/2026