zoukankan      html  css  js  c++  java
  • Quartz简单使用

    官方的Quartz会提供例子的,例子看个前三四个感觉就够用了,主要就是起Timer的作用,但是比timer稳定,而且功能更全。

    UpdateClientTimer.task(ClearJob.class, GlobalVars.CLEAR_MAP_TIMER);

    一个反射的参数和一个Quartz表达式,这个表达式功能很强大

    public static void task(Class cls, String expression) throws SchedulerException {

    SchedulerFactory schedulerFactory = new StdSchedulerFactory();
    Scheduler scheduler = schedulerFactory.getScheduler();

    // current time
    long ctime = System.currentTimeMillis();

    JobDetail jobDetail = new JobDetail("detail", "group", cls);
    // Initiate CronTrigger with its name and group name
    CronTrigger cronTrigger = new CronTrigger("cronTrigger", "group");
    try {
    // setup CronExpression
    CronExpression cexp = new CronExpression(expression);
    //CronExpression cexp = new CronExpression("10 * * * * ?");
    // Assign the CronExpression to CronTrigger
    cronTrigger.setCronExpression(cexp);
    } catch (Exception e) {
    e.printStackTrace();
    }
    // schedule a job with JobDetail and Trigger
    scheduler.scheduleJob(jobDetail, cronTrigger);

    // start the scheduler
    scheduler.start();
    }

    Quartz开始工作了 ,调度频率得看那个class是怎么写的。

    public class ClearJob implements Job {
    private static Logger log = Logger.getLogger(ClearJob.class);
    @Override
    public void execute(JobExecutionContext arg0) throws JobExecutionException {
    log.info("start clear job ");
    java.util.Calendar c = java.util.Calendar.getInstance();
    int min = c.get(java.util.Calendar.MINUTE);
    int second = c.get(java.util.Calendar.SECOND);
    try {
    if(min % 15 == 0 &&second == 0){

    }
    if(second % 10 == 0 ){

    }

    } catch (Exception e) {
    e.printStackTrace();
    }
    }

    }

    我设置的调度器是10秒调度一次(具体频率由expression决定)

    然后在里面有两个动作,一个是10秒触发,一个是15分钟触发。

     

     

  • 相关阅读:
    自定义Android Studio方法注释模板
    shell 大型脚本工具开发实战
    Shell 脚本操作数据库实战
    awk 常用选项及数组的用法和模拟生产环境数据统计
    awk 条件及循环语句和字符串函数
    awk 表达式
    awk 概述及常用方法总结
    sed 追加文件内容
    sed 修改文件内容
    sed 删除文本中的内容
  • 原文地址:https://www.cnblogs.com/caobojia/p/5985621.html
Copyright © 2011-2022 走看看