解决方案 »

  1.   

    job 过多必定会增加服务器的压力,有这样的需求最好做一个定时任务平台,做成集群,只用quartz做定时管理,任务内容用java application 去完成,实现多进程 quartz 做成集群,当资源不够时就扩展节点。这样不会影响web
      

  2.   

    动态加入quartz有编程接口的,你可以到他官网去参考。而且你启动的任务怎么加的呢,启动的能加,动态的也不是问题
      

  3.   

    spring 动态添加任务
      

  4.   

    Scheduler scheduler = schedulerFactory.getScheduler();
    scheduler .scheduleJob(detail, trigger);这个方法应该就是添加啦,参数的话你看看api吧
      

  5.   


    SchedulerFactory schedFact = new org.quartz.impl.StdSchedulerFactory();
    Scheduler sched = schedFact.getScheduler();
    sched.start();
    JobDetail jobDetail = new JobDetail("Income Report","Report Generation", QuartzDemo.class);
    jobDetail.getJobDataMap().put(" type ", " FULL ");
    CronTrigger trigger = new CronTrigger(" Income Report "," Report Generation ");
    trigger.setCronExpression("0 01 00 ? * *");
    sched.scheduleJob(jobDetail, trigger);public class QuartzDemo implements Job{ public void execute(JobExecutionContext arg0) throws JobExecutionException {
    System.out.println("执行我.......");
    }
    }如果是串行执行的话 需要 实现 StatefulJob
      

  6.   

    增加一个定时调度任务
    配置文件里:
    <beans>  
    <!-- 定时器执行方法 -->  
    <bean id="BBB" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">  
    <property name="targetObject">  
    <ref bean="CCC" /><!-- 调用具体执行类(spring配置的bean) -->  
    </property>  
    <property name="targetMethod">  
    <value>DDD</value><!-- 调用的类(CCC)中的方法 -->  
    </property>  
    </bean>  
      
    <!-- 设置定时器运行时间 -->  
    <bean id="AAA"  
    class="org.springframework.scheduling.quartz.CronTriggerBean">  
    <property name="jobDetail">  
    <ref bean="BBB" />  
    </property>  
    <property name="cronExpression">  
    <value>0 0/2 * * * ?</value>  
    </property>  
    </bean>  
      
      
    <!-- 总管理类,如果lazy-init='false',则容器启动时就会执行调度程序-->  
    <!-- 如果lazy-init='true',则需要实例化该bean才能执行调度程序 -->  
    <bean id="startQuartz" lazy-init="false"  
    class="org.springframework.scheduling.quartz.SchedulerFactoryBean">  
    <property name="triggers">  
    <list>  
    <ref bean="AAA" />  
    </list>  
    </property>  
    </bean>  
      
    </beans>  
      

  7.   

    这种动态添加调度的方法,freecms免费版用过,但并不是太稳定,而且有数量限制,所以在商业版中放弃了,改用一个任务执行表,来保存所有需要执行的任务,只用一个调度来扫描这个表,查找需要处理的任务,然后处理。而原来要动态添加的调度,改成了向任务表中添加数据。这样只需要一个调度,也保证了稳定性。