SuperJob 是一个功能强大的作业调度框架,主要用于在.NET 应用程序中实现定时任务的调度和执行。
一、主要特点
灵活性高:支持多种触发方式,包括简单的时间间隔触发、基于 Cron 表达式的复杂触发等,可以满足不同场景下的定时任务需求。可以轻松地定义任务的执行时间、重复次数、优先级等属性,实现对任务的精细控制。
可靠性强:提供了完善的错误处理机制,当任务执行出现错误时,可以记录错误日志并进行适当的处理,确保系统的稳定性。支持任务的持久化,可以将任务的信息存储在数据库中,即使系统重启,任务也不会丢失,能够继续按照预定的计划执行。
易于使用:
提供了简洁的 API,开发人员可以方便地创建、配置和管理定时任务。可以与现有的.NET 应用程序无缝集成,无需对应用程序的架构进行大规模的修改。
扩展性好:
允许开发人员自定义任务的执行逻辑,可以根据具体的业务需求实现复杂的定时任务。支持分布式部署,可以在多台服务器上运行,实现任务的高可用性和负载均衡。
二、主要组件
调度器(Scheduler):负责管理和调度任务的执行。它是核心组件,通过配置不同的触发方式和任务,可以实现各种定时任务的需求。
任务(Job):是要执行的具体工作。开发人员可以实现提供的 IJob 接口来定义自己的任务逻辑。
触发器(Trigger):用于确定任务的执行时间。提供了多种触发器类型,如 SimpleTrigger(简单触发)和 CronTrigger(Cron 表达式触发)等。
三、使用场景
定时数据备份:可以设置定时任务,在特定的时间自动执行数据备份操作,确保数据的安全性。
定期报表生成:按照一定的时间间隔生成各种报表,为企业决策提供数据支持。
系统维护任务:如定期清理缓存、数据库优化等操作,可以提高系统的性能和稳定性。
定时发送邮件或短信:例如在特定的时间向用户发送通知邮件或短信,提高用户体验。
任务队列处理:可以将任务放入队列中,通过调度执行,实现任务的异步处理。
自定义脚本:可以编写业务脚本代码逻辑,执行脚本代码逻辑。
四、软件实现介绍
集群需要配置:
#是否集群 true false
quartz.jobStore.clustered = false
远程调度访问配置:
quartz.scheduler.exporter.type = Quartz.Simpl.RemotingSchedulerExporter, Quartz
quartz.scheduler.exporter.port = 1122
quartz.scheduler.exporter.bindName = WagSchedulerExporter
quartz.scheduler.exporter.channelType = tcp
服务端程序如下:
Quartz DB 可使用 SQL SERVER、 Sqlite等。
若使用 sql server 配置如下:
若使用 sqlite 配置如下:
这里使用控制台作为宿主启动:
远程调度工具
Job管理简单方便,你可以编写Job插件。还自带了默认的job实现。它还支持脚本Job功能,可以不用使用代码IDE情况下,编写代码脚本来执行您的业务逻辑。
Job插件管理:
脚本Job功能:
管理每个job,及job对应的N个触发器。
日历管理: