【Quartz.Net】.net 下使用Quartz.Net
Quartz.net是作业调度框架
1. 项目中添加quartz.net的引用(这里使用nuget管理)
新建一个类TimingJob,该类主要用于实现任务逻辑
using Quartz; using System; namespace QuartzNetDemo { /// <summary> /// 定时任务类 /// </summary> public class TimingJob : IJob { public void Execute(IJobExecutionContext context) { //将要定时执行的逻辑代码写于此处 Console.WriteLine("任务执行了"); } } }
在Program.cs中:(这里是控制台应用程序)
using Quartz; using Quartz.Impl; using System; namespace QuartzNetDemo { class Program { static void Main(string[] args) { ISchedulerFactory sf = new StdSchedulerFactory(); IScheduler scheduler = sf.GetScheduler(); IJobDetail job = JobBuilder.Create<TimingJob>().WithIdentity("job1", "mygroup").Build(); ITrigger trigger = TriggerBuilder.Create().StartAt(DateTime.Now.AddSeconds(5)).WithCronSchedule("/2 * * ? * *").Build(); scheduler.ScheduleJob(job,trigger); scheduler.Start(); } } }
程序运行时,经过5秒后,每间隔2秒输出信息
Cron表达式:
quartz.NET中的cron表达式使用形如 "/5 * * ? * * *" 这样的7位表达式,最后一位年非必选,表达式从左到右,依此是秒、分、时、月第几天、月、周几、年
名称 | 范围 | 可使用的特殊字符 |
Seconds | 0-59 | , - * / |
Minutes | 0-59 | , - * / |
Hours | 0-23 | , - * / |
Day of month | 1-31 | , - * ? / L W |
Month | 1-12 or JAN-DEC | , - * / |
Day of week | 1-7 or SUN-SAT | , - * ? / L # |
Year | 空, 1970-2099 | , - * / |
特殊字符与解释:
, 或的意思。
/ a/b。 a:代表起始时间,b频率时间。
* 频率。 即每一次波动。
- 区间。
? 任意值 。 即每一次波动。只能用在DayofMonth和DayofWeek,二者冲突。指定一个另一个一个要用?
L 表示最后。 只能用在DayofMonth和DayofWeek
W 工作日。 表示最后。 只能用在DayofWeek
#x#y。 只能用DayofMonth。 某月的第y个星期x
分类:
第三方插件
, Quartz.Net
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异