Quartz.NET是一个开源的作业调度库,广泛应用于.NET应用程序中,以实现复杂的定时任务。本次记录将介绍如何利用Quartz.NET实现HTTP作业调度。通过自定义HTTP作业,实现对外部API的定时调用,并探讨如何管理这些作业,包括创建、修改、暂停、恢复和删除作业。
首先定义了一个
HttpJob
类,该类实现了
IJob
接口,用于执行HTTP请求。利用了
RestRequest
来构建请求,并通过静态字典
Delegates
存储每个作业的配置信息,如URL、请求方法和请求头等。
作业信息的持久化:为了持久化作业信息,定义了
JobInfo
类来存储作业的基本信息,如名称、组名、Cron表达式等,并将这些信息保存在本地的JSON文件中。
实现了
QuartzHelper
类,用于管理作业的生命周期。这包括加载作业信息、创建作业、调度作业、暂停/恢复作业以及删除作业等功能。
为了跟踪作业的执行情况,设计了
JobLog
类和
JobLogHelper
类,用于记录和查询作业执行日志。
最后,通过ASP.NET Core的Controller提供了一系列Web API接口,以便于通过HTTP请求管理作业。这些接口包括获取作业列表、添加作业、修改作业、删除作业、暂停作业、恢复作业和立即执行作业等。
源码地址:
https://github.com/yycb1994/Quartz.Net