LXL_Timed_Scheduling 1.1.1
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package LXL_Timed_Scheduling --version 1.1.1
NuGet\Install-Package LXL_Timed_Scheduling -Version 1.1.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="LXL_Timed_Scheduling" Version="1.1.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LXL_Timed_Scheduling" Version="1.1.1" />
<PackageReference Include="LXL_Timed_Scheduling" />
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 LXL_Timed_Scheduling --version 1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LXL_Timed_Scheduling, 1.1.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 LXL_Timed_Scheduling@1.1.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=LXL_Timed_Scheduling&version=1.1.1
#tool nuget:?package=LXL_Timed_Scheduling&version=1.1.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LXL_Timed_Scheduling 定时任务调度器
一个轻量级的统一定时任务调度器,支持按日、月、周、季度、分钟、小时等方式调度任务,并自动记录日志。适用于 .NET 项目中对任务定期执行的场景。
✨ 特性
- ⏰ 支持多种调度方式(每日、每月、每周、每季度、每分钟、每小时)
- 🧵 基于
System.Threading.Timer
实现轻量级定时 - 📄 自动记录任务执行日志,便于排查与分析
- 🔧 自定义任务逻辑,只需实现一个接口
- 🧰 提供任务执行辅助类
TaskHelper
,简化日志和异常处理
🚀 快速开始
安装 NuGet 包
dotnet add package LXL_Timed_Scheduling
使用示例
// 初始化调度器
var scheduler = new TaskScheduler();
// 添加每日任务(每天 8:30 执行)
scheduler.ScheduleDailyTask("每日报表生成",
() => ReportGenerator.GenerateDailyReport(),
hour: 8,
minute: 30);
// 添加每小时任务(每小时的第15分钟执行)
scheduler.ScheduleHourlyTask("数据同步",
() => DataSync.SyncFromDatabase(),
minute: 15);
// 启动调度器
scheduler.Start();
📅 调度方式示例合集
var scheduler = new TaskScheduler();
// 每日任务(每天 14:30 执行)
scheduler.ScheduleDailyTask("每日任务",
action: () => { /* 任务逻辑 */ },
hour: 14,
minute: 30);
// 每周任务(每周一 2:00 执行)
scheduler.ScheduleWeeklyTask("周备份",
action: () => BackupService.RunWeeklyBackup(),
dayOfWeek: DayOfWeek.Monday,
hour: 2,
minute: 0);
// 每月任务(每月 1 号 3:30 执行)
scheduler.ScheduleMonthlyTask("月结算",
action: () => AccountingService.MonthlySettlement(),
day: 1,
hour: 3,
minute: 30);
// 每季度任务(每季度第一天 4:00 执行)
scheduler.ScheduleQuarterlyTask("季度归档",
action: () => ArchiveService.QuarterlyArchive(),
hour: 4,
minute: 0);
// 每分钟任务(每分钟第 0 秒执行)
scheduler.ScheduleMinutelyTask("心跳检测",
action: () => HealthCheck.Ping(),
second: 0);
// 每小时任务(每小时第 30 分钟执行)
scheduler.ScheduleHourlyTask("缓存刷新",
action: () => CacheManager.Refresh(),
minute: 30);
🛠️ 高级功能
任务日志
所有任务执行都会自动记录日志:
[2023-08-01 08:30:00] [START] [每日报表生成] 任务开始执行
[2023-08-01 08:30:05] [SUCCESS] [每日报表生成] 任务成功完成
异常处理
任务中的异常会被自动捕获并记录:
scheduler.ScheduleDailyTask("危险任务", () => {
throw new Exception("出错了!");
});
日志输出示例:
[2023-08-01 09:00:00] [ERROR] [危险任务] 任务执行失败
异常类型: System.Exception
异常消息: 出错了!
堆栈跟踪: ...
异步任务支持
scheduler.ScheduleDailyTask("异步任务", async () => {
await SomeAsyncOperation();
});
任务辅助类使用
// 同步执行+自动日志
TaskHelper.ExecuteWithLog("同步任务", () => DoSomething());
// 异步执行+自动日志
TaskHelper.RunWithLog("异步任务", () => DoSomethingAsync());
⚙️ 配置选项
可通过 TaskSchedulerOptions 自定义调度器行为:
var options = new TaskSchedulerOptions {
LogDirectory = "C:/logs", // 自定义日志目录
MaxConcurrentTasks = 5, // 最大并发任务数
TimeZone = TimeZoneInfo.Local // 时区设置
};
var scheduler = new TaskScheduler(options);
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.