当前位置: 首页 > news >正文

Jfianl框架定时器使用配置

Jfianl 自2.3版本后就整合了定时器到框架中,赞一个;

下面我来总结下自己使用cron4j到达定时效果的经验,不足之处还请见谅;

Cron4jPlugin是作为JFinal的Plugin而存在的,所以使用时需要在JFinalConfig中配置,如下是代码示例:

public void configPlugin(Plugins me) {

	    me.add(new Cron4jPlugin(PropKit.use("fcms_config_dev.txt")));//cms_config_dev.txt这是我的配置文件位置,为了方便管理,我把Cron4jPlugin的配置写在了那里
}
cms_config_dev.txt相关配置:我这边有两个定时任务,责需在cron4j添加名称用“,”隔开;
# cron4j 任务调度配置  ------------------------------------------
cron4j=pvUpdate,fileUpdate //cront4j是所谓的配置名称:configName,可以随便取名,这个名称在创建Cron4jPlugin对象时会被用到,如果创建Cron4jPlugin对象时不提供名称则默认值为 "cron4j
pvUpdate.cron=0 * * * * //.cron指该task的cron表达式
pvUpdate.class=com.daymooc.fcms.common.pageview.PageViewUpdateTask //要调度的目标java类
//pvUpdate.deamon=true //指被调度的任务线程是否为守护线程
pvUpdate.enable=true //指该task是开启还是停用,这个配置不是必须的,可以省略,省略时默认表示开启 fileUpdate.cron=*/10 * * * * fileUpdate.class=com.daymooc.fcms.common.itemFileTask.itemFileTask fileUpdate.enable=true

    请注意,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 分这三个时间点执行

  • 星号 *:表示每一个时间点,例如 * * * * * 表示每分钟执行

  • 除号 /:表示指定一个值的增加幅度。例如 */5表示每隔5分钟执行一次(序列:0:00, 0:05, 0:10, 0:15 等等)。再例如3-18/5 * * * * 是指在从3到18分钟值这个范围之中每隔5分钟执行一次(序列:0:03, 0:08, 0:13, 0:18, 1:03, 1:08 等等)。

调度的目标java类: 实现ITask类
package com.daymooc.fcms.common.itemFileTask;

import com.daymooc.fcms.common.model.ItemFile;
import com.daymooc.fcms.itemFile.ItemFileService;
import com.jfinal.kit.PropKit;
import com.jfinal.plugin.cron4j.ITask;
import org.apache.commons.lang.StringUtils;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.nio.charset.Charset;
import java.util.Date;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;

/**
 * @ClassName itemFileTask
 * @Description TODO 定时轮询附件表 添加查询关键字
 * @Author mld
 * @Date 2019/4/10 0010、下午 5:04
 */
public class itemFileTask  implements ITask {
    private ItemFileService itemFileService = new ItemFileService();

    @Override
    public void stop() { //任务调度结束时执行
        System.out.println("定时结束轮询附件表"+new Date());
    }

    @Override
    public void run() { //任务调度开始时执行
        System.out.println("定时开始轮询附件表"+new Date());
    }

}

完成,运行config文件;

 

参考文献:

https://www.jfinal.com/doc/9-2

  

转载于:https://www.cnblogs.com/mlorct/p/10696220.html

相关文章:

  • springmvc controller junit 测试
  • 第七周
  • Android 视频解析MediaExtractor
  • vs2012 快捷键
  • [数据结构]链表的实现在PHP中
  • PostgreSQL 快速给指定表每个字段创建索引 - 1
  • 玻璃手机后壳或将成为主流,荣耀专注三年极光玻璃 获赞有眼光!
  • 《数据结构与算法》-3-栈和队列
  • 马哥教育第四十一至四十三学习总结
  • 如何备份MySQL数据库
  • 开拓者软件开发团队
  • zabbix3.2监控linux磁盘IO
  • python 笔记 之 random 随机模块
  • 2019哪些是更靠谱的创业赛事活动平台?
  • javascript变量作用域
  • 【翻译】babel对TC39装饰器草案的实现
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【每日笔记】【Go学习笔记】2019-01-10 codis proxy处理流程
  • 0x05 Python数据分析,Anaconda八斩刀
  • flask接收请求并推入栈
  • iOS筛选菜单、分段选择器、导航栏、悬浮窗、转场动画、启动视频等源码
  • JS创建对象模式及其对象原型链探究(一):Object模式
  • SpiderData 2019年2月13日 DApp数据排行榜
  • VUE es6技巧写法(持续更新中~~~)
  • 闭包,sync使用细节
  • 和 || 运算
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • k8s使用glusterfs实现动态持久化存储
  • #Linux(make工具和makefile文件以及makefile语法)
  • #我与Java虚拟机的故事#连载04:一本让自己没面子的书
  • (C)一些题4
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (数据结构)顺序表的定义
  • (转)EXC_BREAKPOINT僵尸错误
  • (转)Scala的“=”符号简介
  • .NET大文件上传知识整理
  • .net和php怎么连接,php和apache之间如何连接
  • .NET与java的MVC模式(2):struts2核心工作流程与原理
  • @serverendpoint注解_SpringBoot 使用WebSocket打造在线聊天室(基于注解)
  • [ Linux ] git工具的基本使用(仓库的构建,提交)
  • [2018-01-08] Python强化周的第一天
  • [Android] Android ActivityManager
  • [ASP.NET MVC]如何定制Numeric属性/字段验证消息
  • [C/C++随笔] char与unsigned char区别
  • [cocos2d-x]关于CC_CALLBACK
  • [Codeforces] combinatorics (R1600) Part.2
  • [CSS]CSS 字体属性
  • [CTO札记]如何测试用户接受度?
  • [IE编程] 了解Urlmon.dll和Wininet.dll
  • [javaSE] 数据结构(二叉查找树-插入节点)
  • [Java安全入门]三.CC1链
  • [LeetCode周赛复盘] 第 312 场周赛20220925
  • [MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办
  • [Oh My C++ Diary]\t \n \r的用法
  • [Phoenix] 七、如何使用自增ID