同步操作将从 不敲代码的攻城狮/springboot-quartz-lite 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
starter版本已上线,欢迎使用!
用户需要正常登录后,方可进入系统,若不登陆直接访问列表或日志页面,则会自动跳转至登录页面。每次登录有效时长为30分钟,过期后任何操作,也会跳转至登录页面。
帐号、密码、验证码均使用 RSA 加密,帐号、密码、RSA公钥、私钥可在application.yml中进行配置。
默认帐号、密码均为:admin。
登录接口添加 参数签名+时间戳
机制,时间戳用于防止 DDOS 攻击,参数签名防止被抓包恶意修改参数。
任务列表显示每个任务的基本信息,可对任务进行立即执行
、暂停
、恢复
、删除
、修改
、日志查询
操作。
对于不会写 cron 表达式的同学,可以点击左上角的 在线生成Cron
按钮进行生成。
右上角可以设置页面的自动刷新频率,默认一秒钟刷新一次。
右上角可以退出登录。
任务日志页面,可以看到对应任务的执行时间
、执行结果
、执行成功或异常信息
。
任务的日志,按执行时间倒序排序。
任务执行失败时,可以配置是否需要发送邮件到指定邮箱,后面会讲如何配置。
下面是整个项目结构,主要类已做注释。
├─java
│ └─com
│ └─leigq
│ └─quartz
│ │ QuartzApplication.java
│ │
│ ├─bean
│ │ ├─common
│ │ │ Response.java -- 统一返回结果
│ │ │
│ │ ├─constant
│ │ │ QuartzTriggerConstant.java
│ │ │ SysUserConstant.java
│ │ │
│ │ ├─dto
│ │ │ AddQuartzJobDTO.java
│ │ │ TaskExecuteDTO.java
│ │ │
│ │ ├─enumeration
│ │ │ SysTaskExecResultEnum.java
│ │ │
│ │ ├─job
│ │ │ BaseJob.java
│ │ │ BaseJobDisallowConcurrent.java
│ │ │ BaseTaskExecute.java -- 任务基础抽象类,其他任务继承此类,实现其execute方法执行任务
│ │ │
│ │ └─vo
│ │ AddSysTaskVO.java
│ │ SysTaskListVO.java
│ │ SysTaskLogListVO.java
│ │ SysUserVO.java
│ │ UpdateSysTaskVO.java
│ │
│ ├─controller
│ │ LoginController.java
│ │ SysTaskController.java
│ │ SysTaskLogController.java
│ │
│ ├─domain
│ │ ├─entity
│ │ │ SysTask.java
│ │ │ SysTaskLog.java
│ │ │
│ │ └─mapper
│ │ SysTaskLogMapper.java
│ │ SysTaskMapper.java
│ │
│ ├─service
│ │ QuartzJobService.java
│ │ SysTaskLogService.java
│ │ SysTaskService.java
│ │
│ ├─task
│ │ HelloQuartz.java --简单的任务示例
│ │
│ ├─util
│ │ EmailSender.java -- 邮件发送
│ │ ExceptionDetailUtils.java
│ │ ImageCode.java -- 图形验证码
│ │ JacksonUtils.java -- JSON工具
│ │ RSACoder.java -- RSA加密工具
│ │ SpringContextHolder.java
│ │ ThreadPoolUtils.java -- 线程池工具
│ │ ValidUtils.java
│ │
│ └─web
│ ├─autoconfigure
│ │ LiteAutoConfig.java
│ │ QuartzAutoConfig.java
│ │
│ ├─config
│ │ MvcConfig.java
│ │ MyBatisPlusConfig.java
│ │ OrikaConfig.java
│ │ RedisConfig.java
│ │ RedisHttpSessionConfig.java
│ │ QuartzConfig.java -- Quartz任务配置
│ │
│ ├─exception
│ │ GlobalExceptionHand.java -- 全局异常处理
│ │ ServiceException.java -- 自定义Service异常
│ │
│ ├─interceptor
│ │ LoginInterceptor.java --登录拦截器
│ │
│ └─properties
│ LiteProperties.java
│ QuartzProperties.java
│
└─resources
├─config
│ application.yml
│ log4j2-config.xml
│
├─mapper
│ SysTaskLogMapper.xml
│ SysTaskMapper.xml
│
├─sql
│ Quartz官方建表.sql
│ 自定义任务和任务日志表.sql
│
├─static
│ └─js
│ jsencrypt.min.js
│ md5.js
│ vue-resource.js
│ vue.js
│
└─templates
login.html -- 登录页面
task-log.html -- 任务日志页面
task-manager.html -- 任务列表页面
结构很简单就不多说了。
建议直接把源码克隆下来运行,源码里面注释很清晰,然后结合下面的几篇文章看,就可以很快理解了。
新建一个数据库或在已存在的数据库中,执行项目中 resource/sql 下面的SQL语句,先执行 Quartz官方建表.sql
,再执行 自定义任务和任务日志表.sql
。
将项目中 application.yml
中的 datasource.password
、 datasource.url
、datasource.username
改为对应你自己的。
可以在 application.yml
中配置登录帐号、密码,不配置则默认均为:admin,RSA的公钥、私钥也可在此配置。公钥、私钥可通过RSACoder生成。
可以在 application.yml
中配置执行任务失败时,是否需要发送邮件到指定邮箱,下面的spring.mail配置根据自己邮件服务自行配置,每家邮件服务都不一样,测试时我是用的QQ的。
运行项目,项目启动后,在浏览器输入:http://localhost:8080/login.html 即可进入登录页面。
此时是一个任务都没有的,项目的 src\main\java\com\leigq\quartz\task 目录下有一个任务示例,你可以把他添加进去看看效果。
怎么集成到已存在的系统中??目前有两种方法:
https://leiguoqing.cn/quartz-lite-test/quartz-lite/login.html
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。