JFinal和JBoot创建一个定时任务
在Spring环境下, 用SpringTask就可以很好的实现定时任务了, 但是如果是用的JFinal和JBoot, 怎么来实现定时任务呢?
1. 第一种方式
1.1 引入依赖
<!--定时任务-->
<dependency><groupId>cn.dreampie</groupId><artifactId>jfinal-quartz</artifactId><version>RELEASE</version>
</dependency>
1.2 找到添加插件Plugin的地方
JFinal的话,代码如下:
public void configPlugin(Plugins me) {//...其他插件/*配置定时任务*/QuartzPlugin quartz = new QuartzPlugin();quartz.setJobs("quarter.properties"); //下面创建properties文件名称me.add(quartz);
}
JBoot的话,代码如下:
@Overridepublic void onJfinalPluginConfig(JfinalPlugins plugins) {QuartzPlugin quartz = new QuartzPlugin();quartz.setJobs("quarter.properties");plugins.add(quartz);super.onJfinalPluginConfig(plugins);}
可能会有差异 , 直接全局搜索plugins
找到相似的,add添加进去就好了
#### 1.3 定义一个quarter.properties文件,放置在resources文件夹下,其中写上其中的属性
多个定时任务, 用channer_1 , channer_2来区分
#需要定时的类
job.channel_1.class = com.hz.shop.api.gateway.task.GoodsTimedTask
job.channel_1.group = default
job.channel_1.id = 1
# 每10秒执行一次
job.channel_1.cron = 0/10 * * * * ?
job.channel_1.enable = true#需要定时的类
job.channel_2.class = com.hz.shop.api.gateway.task.GoodsTimedTask2
job.channel_2.group = default
job.channel_2.id = 1
# 每10秒执行一次
job.channel_2.cron = 0/15 * * * * ?
job.channel_2.enable = true
cron的话,可以去这个网址根据需求生成
CRON表达式在线生成
1.4 创建需要定时类,此类需要实现Job接口(此处实现的是org.quartz.Job)
package com.zgd.gateway.task;import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;/*** 商品相关定时任务* @author zgd* @time 2018年7月20日10:57:50*/
public class GoodsTimedTask implements Job {private static final Logger logger = LoggerFactory.getLogger(GoodsTimedTask.class);@Overridepublic void execute(JobExecutionContext jobExecutionContext) throws JobExecutionException {System.out.println("任务执行了"+DateUtils.getDate());}
}
这里同时执行了两个定时任务,看看效果
上面的方法如果是多个定时就会比较冗余了,所以我们可以使用另外一个方法:
2. 第二种方式
2.1 依赖
<dependency><groupId>it.sauronsoftware.cron4j</groupId><artifactId>cron4j</artifactId><version>2.2.5</version>
</dependency>
2.2 注册插件
跟上面一样,找到合适的地方,添加插件
public void configPlugin(Plugins me) {Cron4jPlugin cp = new Cron4jPlugin(PropKit.use("quarter.properties"), "cron4j");me.add(cp);
}
2.3 quarter.properties配置文件
task1.cron = 0/5 * * * *
task1.class = com.hz.shop.api.gateway.task.GoodsTimedTask
task1.daemon = true
task1.enable = truetask2.cron = 0/5 * * * ?
task2.class = com.hz.shop.api.gateway.task.GoodsTimedTask2
task2.daemon = flase
task2.enable = true
不过这里要注意, 这里的cron 的表达式,没有秒,最小单位是分. 所以只有5个域
0/5 * * * ?
* cron 表达式由五部分组成:分 时 天 月 周
* 分 :从 0 到 59
* 时 :从 0 到 23
* 天 :从 1 到 31,字母 L 可以表示月的最后一天
* 月 :从 1 到 12,可以别名:jan", "feb", "mar", "apr", "may", "jun", "jul", "aug", "sep", "oct", "nov" and "dec"
* 周 :从 0 到 6,0 表示周日,6 表示周六,可以使用别名: "sun", "mon", "tue", "wed", "thu", "fri" and "sat"
*
* 数字 n:表示一个具体的时间点,例如 5 * * * * 表示 5 分这个时间点时执行
* 逗号 , :表示指定多个数值,例如 3,5 * * * * 表示 3 和 5 分这两个时间点执行
* 减号 -:表示范围,例如 1-3 * * * * 表示 1 分、2 分再到 3 分这三个时间点执行
* 星号 *:表示每一个时间点,例如 * * * * * 表示每分钟执行
* 除号 /:表示指定一个值的增加幅度。例如 n/m表示从 n 开始,每次增加 m 的时间点执行
2.4 创建定时类,此类需要实现Runnable接口,其实就是开启一个线程
public class GoodsTimedTask implements Runnable {@Overridepublic void run() {System.out.println("执行了任务");}
}
JFinal和JBoot创建一个定时任务相关推荐
- oracle如何创建一个定时任务,怎么创建定时任务
如何创建定时任务? 本帖最后由 minl 于 2013-11-27 14:16:37 编辑 使用dbms_scheduler这个包,但是创建完后似乎不执行. begin DBMS_SCHEDULER. ...
- 如何创建systemd定时任务
1. 如何创建一个定时任务,通过systemd系统 1. 如何创建一个定时任务,通过systemd系统 1.1. systemd中的timer 1.2. 自定义定时任务 1.2.1. 具体步骤 1.2 ...
- 定时任务:创建静态定时任务、动态定时任务
定时任务有三种实现 1 jdk自带的定时任务 2 Quartz插件实现的定时任务,需要引入额外的包 3 SpringTask定时调度,是对jdk的再一次封装,不用引入其他包了,用spring的包就自带 ...
- linux 创建一个垃圾篓防误删及其误删文件恢复
一.创建一个垃圾篓 给你的linux创建一个垃圾篓/回收站,防误删 创建一个垃圾回收站,保存被删除距今3天的文件,过期则被删除 1. 在你的主目录下,创建文件夹 .trash cd ~ mkdir . ...
- 如何创建一个Quartz.NET的工作,需要注射autofac
问题: 使用 Quartz.Net 做定时任务时,实现IJob对象的服务,Autofac不会自动注入,使用构造函数会直接出现异常,无法执行Execute方法. 解决方式 方法一: 使用 Autofac ...
- navicat创建MySql定时任务详解
目录 navicat创建MySql 定时任务详解 一.开起定时任务 二.通过navicat创建定时任务 三.关闭.启动.别名.移动.删除event 四.查询Event信息 navicat创建MySql ...
- 手把手教你使用SSM框架实现一个学生管理系统第二章之创建一个web工程及相关配置文件的介绍
SSM框架的基本介绍 文字概述: SSM:spring+springMVC+mybaits Spring:是一个容器,就是一个bean(实体对象)大集合. SpringMVC:控制器(业务逻辑层)(视 ...
- SpingBoot中创建动态和静态定时任务
1,静态定时任务 1,创建静态定时任务类,位置放在启动类同级目录或者子包下面,方便扫描到定时任务类上的注解. 2,静态定时任务类需要三个注解:@Configuration,标记该类 ...
- navicat创建mysql定时任务_navicat创建MySql定时任务的方法详解
navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的" ...
最新文章
- java 实例化 bean,Spring(02)——bean实例化
- Js——elementFromPoint方法
- 数据库只有mdf文件而没有ldf文件,如何恢复数据库
- 机器学习-斯坦福:学习笔记7-最优间隔分类器问题
- java8 optional使用_[Java8]如何正确使用Optional
- iphone xcode for lion 下载地址
- php中的几个字符串操作函数strtoupper strtolower ucwords ucfirst lcfirst函数
- 系统内存太少,VirtualBox无法启动虚拟机
- 如何将txt中的数据整理到Matlab中画图
- CentOS 安装SVN客户端
- 斐讯N1纯净精简/夏杰语音/支持投屏-线刷固件及教程202208
- STM32彩灯控制器
- 2020年3月中国编程语言排行榜
- win7你没有权限查看或编辑这个对象的权限设置
- 如何获取股票的净利润、每股收益、主营营业收入
- 《操作系统》第一章习题加解析
- 【独家提供】cs1.5版CSOL人物 女性角色模型下载
- [数据压缩]WAV文件格式分析及AVI数据结构分析
- 谷歌眼镜开发Mirror API之.NET语言开发
- 学习云计算流程,分享学习资源