Sparkdo.Scheduler
3.0.0-preview.1
dotnet add package Sparkdo.Scheduler --version 3.0.0-preview.1
NuGet\Install-Package Sparkdo.Scheduler -Version 3.0.0-preview.1
<PackageReference Include="Sparkdo.Scheduler" Version="3.0.0-preview.1" />
<PackageVersion Include="Sparkdo.Scheduler" Version="3.0.0-preview.1" />
<PackageReference Include="Sparkdo.Scheduler" />
paket add Sparkdo.Scheduler --version 3.0.0-preview.1
#r "nuget: Sparkdo.Scheduler, 3.0.0-preview.1"
#:package Sparkdo.Scheduler@3.0.0-preview.1
#addin nuget:?package=Sparkdo.Scheduler&version=3.0.0-preview.1&prerelease
#tool nuget:?package=Sparkdo.Scheduler&version=3.0.0-preview.1&prerelease
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 | 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. net11.0 is compatible. |
-
net10.0
- Microsoft.Extensions.Configuration.Abstractions (>= 10.0.8)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.8)
- Microsoft.Extensions.FileProviders.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.8)
- Microsoft.Extensions.Options (>= 10.0.8)
- Microsoft.Extensions.Primitives (>= 10.0.8)
- Sparkdo.Crontab (>= 3.0.0-preview.1)
- Sparkdo.Json (>= 3.0.0-preview.1)
- Sparkdo.Scheduler.Abstractions (>= 3.0.0-preview.1)
-
net11.0
- Sparkdo.Crontab (>= 3.0.0-preview.1)
- Sparkdo.Json (>= 3.0.0-preview.1)
- Sparkdo.Scheduler.Abstractions (>= 3.0.0-preview.1)
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 |