定时任务是 Web 应用中不可或缺的一部分。它们可应用于多种场景,如视频网站会员每日成长值奖励、每月电影券发放,保证最终一致性的数据比对,定期报表生成和邮件发送,以及数据清理等。
若依为了更好管理这些定时任务,提供友好的 Web 界面。通过该界面,开发者可动态控制任务的启动、暂停、重启、删除、添加和修改等操作,大幅提高开发效率。
- Bean调用示例:需要添加对应Bean注解@Component或@Service。调用目标字符串
ryTask.ryParams('ry')
Class类调用示例:添加类和方法指定包即可。调用目标字符串:
com.ruoyi.quartz.task.RyTask.ryParams('ry')
/**
* 定时任务调度测试
*
* @author ruoyi
*/
@Component("ryTask")
public class RyTask
{
public void ryMultipleParams(String s, Boolean b, Long l, Double d, Integer i)
{
System.out.println(StringUtils.format("执行多参方法: 字符串类型{},布尔类型{},长整型{},浮点型{},整形{}", s, b, l, d, i));
}
public void ryParams(String params)
{
System.out.println("执行有参方法:" + params);
}
public void ryNoParams()
{
System.out.println("执行无参方法");
}
}
- 任务名称:自定义,如:定时查询任务状态
- 任务分组:根据字典sys_job_group配置
- 调用目标字符串:设置后台任务方法名称参数
- 执行表达式:可查询官方cron表达式介绍
- 执行策略:定时任务自定义执行策略
- 并发执行:是否需要多个任务间同时执行
- 状态:是否启动定时任务
- 备注:定时任务描述信息
测试定时任务是否正常及调度日志是否正确记录,如正常执行表示任务配置成功。
立即执行
(所有misfire
的任务会马上执行)打个比方,如果9点misfire了,在10:15系统恢复之后,9点,10点的misfire会马上执行
执行一次
(会合并部分的misfire
,正常执行下一个周期的任务)假设9,10的任务都misfire了,系统在10:15分起来了。只会执行一次misfire,下次正点执行。
放弃执行
(所有的misfire
不管,执行下一个周期的任务)
字符串
(需要单引号”标识 如:ryTask.ryParams(’ry’))布尔类型
(需要true false标识 如:ryTask.ryParams(true))长整型
(需要L标识 如:ryTask.ryParams(2000L))浮点型
(需要D标识 如:ryTask.ryParams(316.50D))整型
(纯数字即可)[秒] [分] [小时] [日] [月] [周] [年]
说明 | 必填 | 允许填写的值 | 允许的通配符 |
---|---|---|---|
秒 | 是 | 0-59 | , – * / |
分 | 是 | 0-59 | , – * / |
时 | 是 | 0-23 | , – * / |
日 | 是 | 1-31 | , – * / |
月 | 是 | 1-12 / JAN-DEC | , – * ? / L W |
周 | 是 | 1-7 or SUN-SAT | , – * ? / L # |
年 | 是 | 1970-2099 | , – * / |
*
:代表所有可能的值-
:指定范围,
:列出枚举 例如在分钟里,”5,15″表示5分钟和20分钟触发/
:指定增量 例如在分钟里,”3/15″表示从3分钟开始,没隔15分钟执行一次?
:表示没有具体的值,使用?要注意冲突L
:表示last,例如星期中表示7或SAT,月份中表示最后一天31或30,6L表示这个月倒数第6天,FRIL表示这个月的最后一个星期五W
:只能用在月份中,表示最接近指定天的工作日#
:只能用在星期中,表示这个月的第几个周几,例如6#3表示这个月的第3个周五表达式 | 说明 |
---|---|
0 0 2 1 * ? * | 表示在每月的1日的凌晨2点调整任务 |
0 15 10 ? * MON-FRI | 表示周一到周五每天上午10:15执行作业 |
0 15 10 ? 6L 2002-2006 | 表示2002-2006年的每个月的最后一个星期五上午10:15执行作 |
0 0 10,14,16 * * ? | 每天上午10点,下午2点,4点 |
0 0/30 9-17 * * ? | 朝九晚五工作时间内每半小时 |
0 0 12 ? * WED | 表示每个星期三中午12点 |
0 0 12 * * ? | 每天中午12点触发 |
0 15 10 ? * * | 每天上午10:15触发 |
0 15 10 * * ? | 每天上午10:15触发 |
0 15 10 * * ? * | 每天上午10:15触发 |
0 15 10 * * ? 2005 | 2005年的每天上午10:15触发 |
0 * 14 * * ? | 在每天下午2点到下午2:59期间的每1分钟触发 |
0 0/5 14 * * ? | 在每天下午2点到下午2:55期间的每5分钟触发 |
0 0/5 14,18 * * ? | 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发 |
0 0-5 14 * * ? | 在每天下午2点到下午2:05期间的每1分钟触发 |
0 10,44 14 ? 3 WED | 每年三月的星期三的下午2:10和2:44触发 |
0 15 10 ? * MON-FRI | 周一至周五的上午10:15触发 |
0 15 10 15 * ? | 每月15日上午10:15触发 |
0 15 10 L * ? | 每月最后一日的上午10:15触发 |
0 15 10 ? * 6L | 每月的最后一个星期五上午10:15触发 |
0 15 10 ? * 6L 2002-2005 | 2002年至2005年的每月的最后一个星期五上午10:15触发 |
0 15 10 ? * 6#3 | 每月的第三个星期五上午10:15触发 |
注意:不同数据源定时任务都有对应脚本,
Oracle
、Mysql
已经有了,其他的可自行下载执行
powered by kaifamiao