在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创建一个定时任务相关推荐

  1. oracle如何创建一个定时任务,怎么创建定时任务

    如何创建定时任务? 本帖最后由 minl 于 2013-11-27 14:16:37 编辑 使用dbms_scheduler这个包,但是创建完后似乎不执行. begin DBMS_SCHEDULER. ...

  2. 如何创建systemd定时任务

    1. 如何创建一个定时任务,通过systemd系统 1. 如何创建一个定时任务,通过systemd系统 1.1. systemd中的timer 1.2. 自定义定时任务 1.2.1. 具体步骤 1.2 ...

  3. 定时任务:创建静态定时任务、动态定时任务

    定时任务有三种实现 1 jdk自带的定时任务 2 Quartz插件实现的定时任务,需要引入额外的包 3 SpringTask定时调度,是对jdk的再一次封装,不用引入其他包了,用spring的包就自带 ...

  4. linux 创建一个垃圾篓防误删及其误删文件恢复

    一.创建一个垃圾篓 给你的linux创建一个垃圾篓/回收站,防误删 创建一个垃圾回收站,保存被删除距今3天的文件,过期则被删除 1. 在你的主目录下,创建文件夹 .trash cd ~ mkdir . ...

  5. 如何创建一个Quartz.NET的工作,需要注射autofac

    问题: 使用 Quartz.Net 做定时任务时,实现IJob对象的服务,Autofac不会自动注入,使用构造函数会直接出现异常,无法执行Execute方法. 解决方式 方法一: 使用 Autofac ...

  6. navicat创建MySql定时任务详解

    目录 navicat创建MySql 定时任务详解 一.开起定时任务 二.通过navicat创建定时任务 三.关闭.启动.别名.移动.删除event 四.查询Event信息 navicat创建MySql ...

  7. 手把手教你使用SSM框架实现一个学生管理系统第二章之创建一个web工程及相关配置文件的介绍

    SSM框架的基本介绍 文字概述: SSM:spring+springMVC+mybaits Spring:是一个容器,就是一个bean(实体对象)大集合. SpringMVC:控制器(业务逻辑层)(视 ...

  8. SpingBoot中创建动态和静态定时任务

    1,静态定时任务          1,创建静态定时任务类,位置放在启动类同级目录或者子包下面,方便扫描到定时任务类上的注解.  2,静态定时任务类需要三个注解:@Configuration,标记该类 ...

  9. navicat创建mysql定时任务_navicat创建MySql定时任务的方法详解

    navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的" ...

最新文章

  1. java 实例化 bean,Spring(02)——bean实例化
  2. Js——elementFromPoint方法
  3. 数据库只有mdf文件而没有ldf文件,如何恢复数据库
  4. 机器学习-斯坦福:学习笔记7-最优间隔分类器问题
  5. java8 optional使用_[Java8]如何正确使用Optional
  6. iphone xcode for lion 下载地址
  7. php中的几个字符串操作函数strtoupper strtolower ucwords ucfirst lcfirst函数
  8. 系统内存太少,VirtualBox无法启动虚拟机
  9. 如何将txt中的数据整理到Matlab中画图
  10. CentOS 安装SVN客户端
  11. 斐讯N1纯净精简/夏杰语音/支持投屏-线刷固件及教程202208
  12. STM32彩灯控制器
  13. 2020年3月中国编程语言排行榜
  14. win7你没有权限查看或编辑这个对象的权限设置
  15. 如何获取股票的净利润、每股收益、主营营业收入
  16. 《操作系统》第一章习题加解析
  17. 【独家提供】cs1.5版CSOL人物 女性角色模型下载
  18. [数据压缩]WAV文件格式分析及AVI数据结构分析
  19. 谷歌眼镜开发Mirror API之.NET语言开发
  20. 学习云计算流程,分享学习资源

热门文章

  1. htpp-server开启https服务终端报错问题
  2. ios sdk 穿山甲_Creator iOS接入穿山甲SDK
  3. A320M HDV 4.0主板用CH341A手动刷BIOS支持5600g
  4. 太白山北坡旅游路线登顶攻略
  5. 猿创征文 | Git的良心教程
  6. 用html语言编写笑脸,怎么使用HTML5中的Canvas绘制笑脸
  7. Chrome谷歌浏览器插件的本地存放位置
  8. linux运行中的一个错误解决
  9. 【Python基础】第十六篇 | 面向对象之高级篇
  10. 多边形标注收缩python代码实现