zoukankan      html  css  js  c++  java
  • quratz启动流程

      SchedulerFactory在创建quartzScheduler的过程中,将会读取配置参数,初始化各个组件。

    1.启动流程图

      

    2.ThreadPool

      一般是使用SimpleThreadPool,SimpleThreadPool创建了一定数量的WorkerThread实例来使得Job能够在线程中进行处理。

      WorkerThread是定义在SimpleThreadPool类中的内部类,它实质上就是一个线程。

      在SimpleThreadPool中有三个list:workers-存放池中所有的线程引用,availWorkers-存放所有空闲的线程,busyWorkers-存放所有工作中的线程;
      线程池的配置参数如下所示:

    org.quartz.threadPool.class=org.quartz.simpl.SimpleThreadPool 
    org.quartz.threadPool.threadCount=3
    org.quartz.threadPool.threadPriority=5

      ThreadPool.java

     

      代码:

    1 public SimpleThreadPool(int threadCount, int threadPriority) {
    2         setThreadCount(threadCount);
    3         setThreadPriority(threadPriority);
    4 }

    3.JobStore

      分为存储在内存的RAMJobStore和存储在数据库的JobStoreSupport(包括JobStoreTX和JobStoreCMT两种实现,JobStoreCMT是依赖于容器来进行事务的管理,而JobStoreTX是自己管理事务)。

      若要使用集群要使用JobStoreSupport的方式。

      

    4.QuratzSchedulerThread

      用来进行任务调度的线程,在初始化的时候paused=true,halted=false,虽然线程开始运行了,但是paused=true,线程会一直等待,直到start方法将paused置为false;

  • 相关阅读:
    查看mysql数据库容量大小
    通过shell监控网页是否正常,然后促发邮件告警
    Linux shell标准输入,标准输出,错误输出
    linux资源管理命令之-----vmstat
    linux基础命令--lsof
    squid之------ACL控制
    JDK的二进制安装
    重置grafana密码
    CentOS 7添加开机启动服务脚本
    LVM逻辑卷理论及配置
  • 原文地址:https://www.cnblogs.com/juncaoit/p/9406026.html
Copyright © 2011-2022 走看看