`

Quartz 1.8.5 集群(jboss4.2.3 )

阅读更多

在数据库中创建Quartz所需表(sql语句可以在quartz-1.8.5\docs\dbTables中找到,

       这里以oracle数据库为例):

qrtz_blob_triggers,

qrtz_calendars,

qrtz_cron_triggers,

qrtz_fired_triggers,

qrtz_job_details,

qrtz_job_listeners,

qrtz_locks,

qrtz_paused_trigger_grps,

qrtz_scheduler_state,

qrtz_simple_triggers,

qrtz_triggers,

        qrtz_trigger_listeners

 

      

加入quartz 所需要的包(放入jboss-4.2.3.GA\server\all\lib下):

 先把jboss自带的quartz jar删除掉。包括(quartz-ra.rar)都删除掉。

 

commons-dbcp-1.3.jar

commons-pool-1.5.4.jar

jta-1.1.jar

log4j-1.2.14.jar

quartz-all-1.8.5.jar

slf4j-api-1.6.0.jar

        slf4j-log4j12-1.6.0.jar
3.创建quartz-service.xml文件(放入jboss-4.2.3.GA\server\all\deploy下),文件内容如下:

 <?xml version="1.0" encoding="UTF-8"?>

<server>

  <mbean code="org.quartz.ee.jmx.jboss.QuartzService"

      name="user:service=QuartzService,name=QuartzService">

         <attribute name="JndiName">Quartz</attribute>

         <attribute name="StartScheduler">true</attribute>

<attribute name="Properties">

#============================================================================

# Configure Main Scheduler Properties

#============================================================================

         #==========集群名称,每个节点的名字都一样===========

         org.quartz.scheduler.instanceName = quartzjbossdemopartitionName

         #==========集群每个节点ID=======

org.quartz.scheduler.instanceId = AUTO

 

#============================================================================

# Configure ThreadPool

#============================================================================

         #=======线程====

         org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool

         org.quartz.threadPool.threadCount = 25

         org.quartz.threadPool.threadPriority = 5

 

#============================================================================

# Configure JobStore

#============================================================================

 

      org.quartz.jobStore.misfireThreshold = 60000

      org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX

org.quartz.jobStore.driverDelegateClass=org.quartz.impl.jdbcjobstore.oracle.OracleDelegate

      org.quartz.jobStore.dataSource = QUARTZ

      org.quartz.jobStore.tablePrefix = QRTZ_

 

      org.quartz.jobStore.isClustered = true

      org.quartz.jobStore.clusterCheckinInterval = 30000

 

#============================================================================

# Configure Datasources

#============================================================================

                   #=================数据库写上自己的数据库======

         org.quartz.dataSource.QUARTZ.driver = oracle.jdbc.driver.OracleDriver

         org.quartz.dataSource.QUARTZ.URL = jdbc:oracle:thin:@192.168.111.24:1521:db         org.quartz.dataSource.QUARTZ.user = rootmq

         org.quartz.dataSource.QUARTZ.password = rootmq

         org.quartz.dataSource.QUARTZ.maxConnections = 5

         org.quartz.dataSource.QUARTZ.validationQuery=select 0 from dual

        

</attribute>

  </mbean>

 

</server>
4.       java代码
每一个 Quartz Job 必须有一个实现了 org.quartz.Job 接口的具体类.

public class JbossJob implements Job {

 

public void execute(JobExecutionContext arg0) throws JobExecutionException {

    System.out.println("hello jbossJob .....");

}

 

}
5.   具体调用

 public class StartOrCloseScheduler implements Serializable{

 

 

    /**

     *

     */

    private static final long serialVersionUID = -2266323478579408291L;

    private static Logger myLogger = Logger.getLogger(StartOrCloseScheduler.class);

    private static Scheduler sched = null;

    /**

     * 启动任务

     * jobName: job名称

     * jobGroupName: job组名称

     * triggerName: trigger名称

     * triggerGroupName:trigger组名称

     */

    @SuppressWarnings("rawtypes")

    public static void start(String jobName,String jobGroupName,

            String triggerName,String triggerGroupName,

            Class c, String str) {

       try {

           InitialContext ctx = new InitialContext();

            sched = (Scheduler) ctx.lookup("Quartz");

            System.out.println("Scheduler:" + sched);

       } catch (NamingException e) {

           e.printStackTrace();

       }

        JobDetail job = new JobDetail(jobName,jobGroupName, c);

        System.out.println("JobDetail:" + job);

         Trigger trigger = new CronTrigger(triggerName,triggerGroupName);

         System.out.println("Trigger:" + trigger);

    try {

        ((CronTrigger) trigger).setCronExpression(str);

           sched.scheduleJob(job, trigger);

           System.out.println("job:" + job);

           sched.start();

       } catch (Exception e) {

           myLogger.error("开启一个任务"+jobName+e.getMessage());

           e.printStackTrace();

       }

 

    }

 

 

    /**

     * 移除一个任务

     * @param jobName: job名称

     * @param jobGroupName: job组名称

     * @param triggerName: trigger名称

     * @param triggerGroupName: trigger组名称

     * @throws SchedulerException

     */

    public static void removeJob(String jobName,String jobGroupName,

                                 String triggerName,String triggerGroupName) {

    try {

           InitialContext ctx = new InitialContext();

            sched = (Scheduler) ctx.lookup("Quartz");

       } catch (NamingException e) {

           e.printStackTrace();

       }

    try {

           //停止触发器

           sched.pauseTrigger(triggerName,triggerGroupName);

           //移除触发器

           sched.unscheduleJob(triggerName,triggerGroupName);

           //删除任务

           sched.deleteJob(jobName,jobGroupName);

       } catch (SchedulerException e) {

           myLogger.info("移除一个任务"+jobName+e.getMessage());

       }

    }

 

}

0
1
分享到:
评论

相关推荐

    quartz-1.8.5

    在这个"quartz-1.8.5"版本中,我们专注于Spring 3.1版本集成Quartz进行定时任务的管理。 Spring框架本身提供了TaskExecution和TaskScheduling模块,可以处理简单的定时任务,但当任务调度需求变得复杂时,如需要...

    quartz-1.8.5.tar.gz

    Quartz还支持多种高级特性,如并发性控制、集群部署、Cron表达式支持等,使得它在大型企业级应用中非常实用。对于需要对任务执行进行精确控制和管理的Java应用,Quartz是一个强大的工具。通过对"quartz-1.8.5.tar.gz...

    quartz-all-1.8.5.jar

    quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar

    quartz-jboss-1.8.6.jar

    quartz-jboss-1.8.6.jar quartz集群

    quartz-1.8.5.jar.zip

    Quartz 1.8.5 版本是这个框架的一个稳定版本,提供了可靠的时间调度功能,适用于各种规模的企业级应用。 Quartz 的核心特性包括: 1. **可扩展性**:Quartz 可以轻松地与任何应用程序服务器集成,并且支持多线程和...

    quartz所需jar包 1.6.0、1.8.5、2.2.1三个版本

    这个压缩包包含了Quartz的三个不同版本:1.6.0、1.8.5以及2.2.1。每个版本的jar包都有其特定的功能和改进,下面是关于这些版本的详细知识: 1. **Quartz 1.6.0**: - Quartz 1.x系列是早期的版本,主要支持JDK 1.4...

    spring4.0.6+quartz 2.2.3 集群示例

    1. **配置Quartz**: 在`quartz.properties`文件中,设置`org.quartz.scheduler.instanceName`以区别各个集群节点,同时启用集群模式,如`org.quartz.jobStore.isClustered=true`。 2. **Spring配置**: 创建一个...

    SpringBoot 整合Quartz(集群)实现定时任务调度

    quartz.dataSource.quartzDataSource.jndiName=java:jboss/datasources/QuartzDS quartz.scheduler.instanceName=MyScheduler quartz.jobStore.isClustered=true ``` 然后,定义定时任务。创建一个实现了`org....

    quartz-1.8.5.jar

    Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。

    spring3+quartz1.6.4 集群示例

    本示例"spring3+quartz1.6.4 集群示例"是将两者结合,以实现一个能够支持集群的定时任务管理解决方案。 1. **Spring 3.x 框架** Spring 3.x 是Spring框架的一个版本,它引入了许多新特性,包括对Java 5和6的支持,...

    quartz在集群环境下的最终解决方案

    ### quartz在集群环境下的最终解决方案 #### 背景与挑战 随着系统复杂度的提高以及业务需求的变化,越来越多的应用程序需要支持高可用性和可扩展性。为了满足这些需求,通常会选择将应用程序部署在集群环境中。...

    quartz 集群解决方法

    Quartz集群需要将所有调度信息(如Job、Trigger)存储在一个共享的持久化存储中,以便所有集群节点都能访问。这通常通过实现`ISchedulerFactory`接口的`StdSchedulerFactory`类和数据库连接来完成。数据库可以选择...

    spring+quartz定时集群支持

    总结起来,"Spring+Quartz定时集群支持"涉及到的知识点主要包括:Spring与Quartz的集成、Quartz的集群配置、`MethodInvokingJobDetailFactoryBean`的使用、数据库表的设计以及通过IHS等手段实现的任务调度。...

    quartz支持集群的定时器任务

    在分布式环境中,Quartz的集群功能可以实现高可用性和任务的负载均衡。以下是对"quartz支持集群的定时器任务"这一主题的详细阐述。 1. **Quartz基本概念** - **Job**:在Quartz中,Job是执行的具体任务,它定义了...

    quartz集群完整应用实例

    本篇将基于"quartz集群完整应用实例"来深入探讨Quartz的集群配置与实现。 Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是执行的具体任务,Trigger定义了任务何时运行,而...

    spring quartz集群配置

    Spring Quartz 集群配置详解 在分布式系统中,定时任务的管理往往是一个重要的环节,Spring与Quartz的结合能够帮助我们实现复杂的工作调度。Quartz是一个开源的作业调度框架,它提供了高度可配置的定时任务执行能力...

    Springboot集成quartz集群

    本文章是关于springboot集成quartz集群的步骤,LZ亲测。

Global site tag (gtag.js) - Google Analytics