zoukankan      html  css  js  c++  java
  • 每次任务 创建 一个 Scheduler,运行完直接shutdown ,同时运行不相互影响.

    创建Scheduler 不相互影响

    用默认工厂类获取scheduler 实例 code 如下:

    StdSchedulerFactory schf = newStdSchedulerFactory();

    scheduler = schf.getScheduler();

    但多次初始化:

     

    例如

    List list = new ArrayList();

    for(int i = 0;i<10;i++)

    {

    StdSchedulerFactory schf =newStdSchedulerFactory();

    scheduler= schf.getScheduler();

    list .add(scheduler);

    }

    但是获取都是一个默认的Scheduler.即调用getDefaultScheduler

    若需要获得不同的scheduler for中代码如下

    Properties props = new Properties();

    props.put("org.quartz.scheduler.instanceName", i+"");// 不同name

    props.put("org.quartz.threadPool.class","org.quartz.simpl.SimpleThreadPool");

    props.put("org.quartz.threadPool.threadCount","10");

    StdSchedulerFactory schf = new StdSchedulerFactory();

    schf.initialize(props);

    scheduler = schf.getScheduler();

    Scheduler 可以经过默认的配置文件 设置Scheduler name.由此不同实例里的Scheduler

    是不同的,一个Scheduler.shutdown 不再会相互影响.

    第二. 灵活配置time

    例子如下:

    private Scheduler scheduler;
    
        // public SchedulerUtil() throws SchedulerException
        // {
        // StdSchedulerFactory schf = new StdSchedulerFactory();
        // scheduler = schf.getScheduler();
        // }
    
        public SchedulerUtil(String name) throws SchedulerException
        {
            Properties props = new Properties();
            props.put("org.quartz.scheduler.instanceName", name);
            props.put("org.quartz.threadPool.class", "org.quartz.simpl.SimpleThreadPool");
            props.put("org.quartz.threadPool.threadCount", "10");
            StdSchedulerFactory schf = new StdSchedulerFactory();
            schf.initialize(props);
            scheduler = schf.getScheduler();
    
        }
    
        JobDetail jb1 = new JobDetail("job_1", "group_1", SimpleJob.class);
        
        public void taskRun()throws Exception
        {
            CronTrigger ct = new CronTrigger("trigger", "group");
            ct.setCronExpression("0/1 * * * * ?");
            scheduler.scheduleJob(jb1, ct);
            scheduler.start();
        }
        public void modifyTaskTime()throws Exception
        {
            CronTrigger ct = (CronTrigger) scheduler.getTrigger("trigger", "group");
            ct.setCronExpression("0/3 * * * * ?");
            scheduler.deleteJob("job_1", "group_1");
            scheduler.scheduleJob(jb1, ct);
        }</span>



  • 相关阅读:
    从电视剧《清平乐》聊聊宋仁宗和宋词
    也读《白鹿原》:望关中平原,窥民族秘史
    听说你在做数字化转型,了解中台一下不?
    刘润《商业洞察力30讲》学习总结
    《容器化.NET应用架构指南》脑图学习笔记(一)
    也聊春节:漫天红色与春晚变迁
    我的2019年终回顾:行道迟迟,载饥载渴,而立之年,持续刷新
    ASP.NET Core on K8S深入学习(11)K8S网络知多少
    ASP.NET Core on K8S深入学习(10)K8S包管理器Helm
    【译】gRPC vs HTTP APIs
  • 原文地址:https://www.cnblogs.com/xue88ming/p/7183032.html
Copyright © 2011-2022 走看看