C#+VS2022+Quartz.NET 3.6.2 自动任务作业调度框架测试
C#+VS2022+Quartz.NET 3.6.2 自动任务作业调度框架测试
Quartz.NET简介
Quartz.NET是一个开源的作业调度框架,是OpenSymphony 的 Quartz API的.NET移植,它用C#写成,可用于winform和asp.net应用中。它提供了巨大的灵活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。它有很多特征,如:数据库支持,集群,插件,支持cron-like表达式等等。
测试环境
VS2022, C#
Console控制台
.NET7
测试结果

C#源码
C# Code:
using CSFramework.QuartZ;
Console.WriteLine("/************************************************/");
Console.WriteLine("QuartZ.NET测试程序");
Console.WriteLine("by www.csframework.com C/S框架网");
Console.WriteLine("/************************************************/");
//运行测试程序
TestQuartz.Run();
//注意:这里使用ReadLine方法,否则控制台没有输出任何信息,以为程序执行失败!
Console.ReadLine();
//来源:C/S框架网 | www.csframework.com | QQ:23404761
Console.WriteLine("/************************************************/");
Console.WriteLine("QuartZ.NET测试程序");
Console.WriteLine("by www.csframework.com C/S框架网");
Console.WriteLine("/************************************************/");
//运行测试程序
TestQuartz.Run();
//注意:这里使用ReadLine方法,否则控制台没有输出任何信息,以为程序执行失败!
Console.ReadLine();
//来源:C/S框架网 | www.csframework.com | QQ:23404761
C# Code:
/// <summary>
/// www.csframework.com,测试QuartZ.NET
/// </summary>
public class TestQuartz
{
/// <summary>
/// 运行测试程序
/// </summary>
public static async void Run()
{
//1.调度工厂//创建任务调度器
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
//2.启动任务调度器
await scheduler.Start();
//3.创建一个触发条件(配置任务的参数),每3秒执行一次任务,永不停止。
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(x => { x.WithIntervalInSeconds(3).RepeatForever(); })
.Build();
//4.创建一个任务
IJobDetail job = JobBuilder.Create<TestJob>()
.WithIdentity("job", "group")
.Build();
//将创建的任务和触发器条件添加到创建的任务调度器当中
await scheduler.ScheduleJob(job, trigger);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
/// www.csframework.com,测试QuartZ.NET
/// </summary>
public class TestQuartz
{
/// <summary>
/// 运行测试程序
/// </summary>
public static async void Run()
{
//1.调度工厂//创建任务调度器
StdSchedulerFactory factory = new StdSchedulerFactory();
IScheduler scheduler = await factory.GetScheduler();
//2.启动任务调度器
await scheduler.Start();
//3.创建一个触发条件(配置任务的参数),每3秒执行一次任务,永不停止。
ITrigger trigger = TriggerBuilder.Create()
.WithSimpleSchedule(x => { x.WithIntervalInSeconds(3).RepeatForever(); })
.Build();
//4.创建一个任务
IJobDetail job = JobBuilder.Create<TestJob>()
.WithIdentity("job", "group")
.Build();
//将创建的任务和触发器条件添加到创建的任务调度器当中
await scheduler.ScheduleJob(job, trigger);
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
C# Code:
[DisallowConcurrentExecution]
public class TestJob : IJob
{
private static int _Count = 0;
private static object _lock = new object();
[MethodImpl(MethodImplOptions.Synchronized)]
public virtual Task Execute(IJobExecutionContext context)
{
lock (_lock)
{
_Count++;
}
Console.WriteLine($"正在执行第{_Count}次任务...");
Console.Out.WriteLineAsync($"执行Job,时间:{DateTime.Now}");
Console.WriteLine("--------------------------------------");
return Task.CompletedTask;
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
[DisallowConcurrentExecution]
public class TestJob : IJob
{
private static int _Count = 0;
private static object _lock = new object();
[MethodImpl(MethodImplOptions.Synchronized)]
public virtual Task Execute(IJobExecutionContext context)
{
lock (_lock)
{
_Count++;
}
Console.WriteLine($"正在执行第{_Count}次任务...");
Console.Out.WriteLineAsync($"执行Job,时间:{DateTime.Now}");
Console.WriteLine("--------------------------------------");
return Task.CompletedTask;
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
VS2022不能打开窗体设计器解决方案(无法设计窗体)|C/S开发框架
VS2022+.NET 部署DevExpress V23.2|C/S开发框架
VS2022 .NET7手动更改组件类型(TextEdit改为ComboBoxEdit)|C/S开发框架
CSFrameworkV6开发框架升级VS2022+.NET8+DevExpress24.1操作步骤|C/S开发框架
VS2022编译解决方案为什么会生成2级Debug子目录|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
VS2022 工具箱没有可用的控件解决方案
VS2022解决方案部署DevExpress组件(DevExpress Project Settings)|C/S开发框架
塑胶板材行业ERP系统软件开发平台(VS2022+C#+Winform)
ERP/MES系统通用快速开发平台(VS2022+C#+EF)
VS2022+.NET7:从其他项目复制Form.cs窗体文件无法打开设计器(解决方案)
PLC,上位机软件快速开发框架(VS2022+C#+Winform)
ERP,MES软件快速开发平台(Winform+VS2022+C#+.NET7)
VS2022/.NET7:CA1416:可在所有平台上访问此调用站点。"xxx"仅在 'windows'上受支持。
VS2022 .NET7 部署 DevExpress V22.2 开发包 | 开发教程
VS2022 使用 .NET 升级助手将.NET Framework程序升级到 .NET 6/.NET7
VS2022不能打开窗体设计器解决方案(无法设计窗体)|C/S开发框架
VS2022+.NET 部署DevExpress V23.2|C/S开发框架
VS2022 .NET7手动更改组件类型(TextEdit改为ComboBoxEdit)|C/S开发框架
CSFrameworkV6开发框架升级VS2022+.NET8+DevExpress24.1操作步骤|C/S开发框架
VS2022编译解决方案为什么会生成2级Debug子目录|C/S开发框架
WinFormsApp窗体应用快速开发框架(.NET7+EFCore+VS2022)
VS2022 工具箱没有可用的控件解决方案
VS2022解决方案部署DevExpress组件(DevExpress Project Settings)|C/S开发框架
塑胶板材行业ERP系统软件开发平台(VS2022+C#+Winform)
ERP/MES系统通用快速开发平台(VS2022+C#+EF)
VS2022+.NET7:从其他项目复制Form.cs窗体文件无法打开设计器(解决方案)
PLC,上位机软件快速开发框架(VS2022+C#+Winform)
ERP,MES软件快速开发平台(Winform+VS2022+C#+.NET7)
VS2022/.NET7:CA1416:可在所有平台上访问此调用站点。"xxx"仅在 'windows'上受支持。
VS2022 .NET7 部署 DevExpress V22.2 开发包 | 开发教程
VS2022 使用 .NET 升级助手将.NET Framework程序升级到 .NET 6/.NET7
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
