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>



  • 相关阅读:
    Android 创建Library Project(库项目)与引用操作
    Android插件化(二):使用DexClassLoader动态载入assets中的apk
    洛谷P3388 【模板】割点(割顶)(tarjan求割点)
    BZOJ 1179: [Apio2009]Atm(tarjan+SPFA)
    洛谷P1067 多项式输出(模拟)
    洛谷P2118 比例简化(暴力)
    BZOJ 3714: [PA2014]Kuglarz(最小生成树)
    BZOJ 4289: PA2012 Tax(最短路)
    BZOJ 4152: [AMPPZ2014]The Captain(最短路)
    洛谷P2939 [USACO09FEB]改造路Revamping Trails(最短路)
  • 原文地址:https://www.cnblogs.com/xue88ming/p/7183032.html
Copyright © 2011-2022 走看看