什么是定时任务?
在实际项目开发中Web应用有一类不可缺少的,那就是定时任务。 定时任务的场景可以说非常广泛,比如某些视频网站,购买会员后,每天会给会员送成长值,每月会给会员送一些电影券; 比如在保证最终一致性的场景中,往往利用定时任务调度进行一些比对工作;比如一些定时需要生成的报表、邮件;比如一些需要定时清理数据的任务等。 所以我们提供方便友好的web界面,实现动态管理任务,可以达到动态控制定时任务启动、暂停、重启、删除、添加、修改等操作,极大地方便了开发过程。
Ruoyi框架下的定时任务使用流程:
1、后台添加定时任务处理类(支持Bean
调用、Class
类调用)
1)Bean
调用示例:需要添加对应Bean
注解@Component
或@Service
。调用目标字符串:ryTask.ryParams('ry')
2)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("执行无参方法");
}
}
2、前端新建定时任务信息(系统监控 -> 定时任务)
任务名称:自定义,如:定时查询任务状态
任务分组:根据字典sys_job_group
配置
调用目标字符串:设置后台任务方法名称参数
执行表达式:可查询官方cron
表达式介绍
执行策略:定时任务自定义执行策略
并发执行:是否需要多个任务间同时执行
状态:是否启动定时任务
备注:定时任务描述信息
3、点击执行一次,测试定时任务是否正常及调度日志是否正确记录,如正常执行表示任务配置成功。
执行策略详解:立即执行
(所有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)
)整型
(纯数字即可)
Ruoyi框架定时任务实现逻辑:
看了看视频,一脸懵逼没看懂