zoukankan      html  css  js  c++  java
  • 定时任务quartz

    定时任务quartz

    触发器 Trigger: 什么时候工作
    任务 Job: 做什么工作
    调度器 Scheduler: 搭配 Trigger和Job

    定义一个job

    实现quartz的Job接口,重写需要执行的方法。

    Job 其实是由 3 个部分组成:
    JobDetail: 用于描述这个Job是做什么的
    实现Job的类: 具体干活的
    JobDataMap: 给 Job 提供参数用的

    public class MyJob implements Job {
        @Override
        public void execute(JobExecutionContext context) throws JobExecutionException {
            String format = new SimpleDateFormat("现在是yyyy-MM-dd日,具体时间: HH:mm:ss").format(new Date());
            System.out.println(format);
        }
    }
    

    调度器和触发器

    @Test
        public void test() throws SchedulerException, InterruptedException {
            //获取一个定时调度器
            Scheduler scheduler = new StdSchedulerFactory().getScheduler();
            //修饰job的,比如分组
            JobDetail jobDetail = JobBuilder.newJob(MyJob.class).withIdentity("myjob","打印时间")
                    .build();
    
            //触发器,如何触发
            SimpleTrigger trigger = newTrigger().withIdentity("mytrigger", "处理打印时间的job").startNow()
                    .withSchedule(simpleSchedule()
                            .withIntervalInSeconds(2) //每隔2秒执行一次
                            .withRepeatCount(10)).build();
    
            //调度job和trigger
            scheduler.scheduleJob(jobDetail, trigger);
            scheduler.start();
            Thread.sleep(5000);
            scheduler.shutdown();
        }
    
    
    15:20:44.324 [DefaultQuartzScheduler_Worker-3] DEBUG org.quartz.core.JobRunShell - Calling execute on job 打印时间.myjob
    现在是2020-09-11日,具体时间: 15:20:44
    
  • 相关阅读:
    一个进程间同步和通讯的 C# 框架
    C# 程序员最常犯的 10 个错误
    《C#并发编程经典实例》笔记
    C# BackgroundWorker 详解
    C# Excel导入导出
    List实现行转列的通用方案
    C# 开发者最经常犯的 8 个错误
    Intellij IDEA 查找接口实现类的快捷键
    target runtime com.genuitec.runtime.genuitec.jee60 is not defined
    java.io.WinNTFileSystem
  • 原文地址:https://www.cnblogs.com/cgl-dong/p/13830961.html
Copyright © 2011-2022 走看看