`
Johnny_GZ
  • 浏览: 179914 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

java 操作quartz.Scheduler

阅读更多
以前在web项目中使用过spring+quartz进行定时操作,本次没有使用spring,直接java代码使用quartz进行定时任务的操作,做了一点总结进行分享:
try {
   Scheduler scheduler = StdSchedulerFactory.getDefaultScheduler();
   if (scheduler != null && scheduler.isInStandbyMode()) {
      scheduler.start();
   }
   JobDetail jobDetail = new JobDetail(jobName, groupName, jobClass);
   jobDetail.getJobDataMap().put("name","value");

//简单的定时任务
   SimpleTrigger trigger = new SimpleTrigger(jobName, groupName,
startTime, endTime, repeatCount, repeatInterval);
   scheduler.scheduleJob(jobDetail, trigger);

//复杂些的定时任务,可以在网上找到表达式
   CronTrigger cronTrigger=new  CronTrigger("c","d");
   cronTrigger.setCronExpression("0/1 * * * * ? " ); // 启动之后立即执行 每一秒继续重复。
   scheduler.scheduleJob(jobDetail, cronTrigger);

   //结束
    if (jobScheduler != null) {
       jobScheduler.stopScheduler();
       jobScheduler = null;
    }
} catch (Exception e) {
   e.printStackTrace();
}

Job是无状态的。这意味着在两次作业执行之间,不会去维护作业执行时JobDataMap的状态改变。如果你需要能增、删,改JobDataMap的值,而且能让作业在下次执行时能看到这个状态改变,则需要用Quartz有状态作业,这时去实现StatefulJob。

public class SendSmsJob implements StatefulJob/Job {
   public void execute(JobExecutionContext jobContext) throws JobExecutionException {
      JobDataMap map = jobContext.getJobDetail().getJobDataMap().getString("name");
      ....
   }
}
分享到:
评论

相关推荐

    quartz-scheduler分享.docx

    - `org.quartz.scheduler.instanceId`: 用来标识scheduler实例,应保证全局唯一,可以设置为"AUTO"让Quartz自动生成,或者通过"SYS_PROP"用系统属性设定。 - `org.quartz.threadPool.class`: 指定线程池实现类,...

    quartz scheduler 入门教程

    Quartz Scheduler 是一种功能丰富、开源的任务调度程序库,可以在任何 Java 程序中使用。它可以用来创建简单或者复杂的执行次数可以达成千上万的任务。任务可以是任何 Java 可以做的事情。 什么是 Quartz Scheduler...

    SpringBoot-Quartz.rar

    org.quartz.scheduler.instanceName = DefaultQuartzScheduler #集群模式 #org.quartz.scheduler.instanceId = AUTO org.quartz.scheduler.rmi.export = false org.quartz.scheduler.rmi.proxy = false org.quartz....

    quartz

    4. **org.quartz.scheduler.threadName**:调度器线程的名称,可以是任何有效的 Java 线程名称。如果不指定,线程名将默认为实例名加上 "_QuartzSchedulerThread" 后缀。 5. **org.quartz.scheduler.idleWaitTime**...

    quartz.jar包下载

    Quartz.jar是一个非常重要的Java库,它主要用于计划和执行任务,特别是在企业级应用程序中。这个包包含了一系列的类和接口,使得开发者能够方便地创建、调度和管理定时任务。Quartz的核心是基于Cron表达式的,它允许...

    quartz.rar

    scheduler.scheduleJob(jobDetail, trigger); scheduler.start(); } catch (Exception e) { e.printStackTrace(); } } } ``` 这里的`CronScheduleBuilder.cronSchedule("0/5 * * * * ?")`是使用cron表达式来...

    quartz.doc

    org.quartz.scheduler.instanceName=TestScheduler org.quartz.scheduler.instanceId=AUTO ``` - `instanceName`: 定义调度器的名称。 - `instanceId`: 定义调度器的唯一标识符,默认值为 `AUTO` 表示自动生成...

    springboot-quartz.zip

    scheduler.scheduleJob(job, trigger); } } ``` 最后,启动SpringBoot应用,Quartz会自动加载并执行配置的任务。如果你的应用需要在运行时动态添加、修改或删除任务,可以使用Spring提供的`SchedulerFactoryBean`...

    Getting_Started_with_Quartz_Scheduler.pdf Version 2.2.1

    这一步骤通过`Scheduler.scheduleJob`方法完成。 #### 启动调度程序 最后,调用`Scheduler.start`方法启动调度程序。这样,根据之前定义的触发器规则,作业将在指定的时间执行。 ### Quartz Scheduler的高级特性 ...

    一个java Quartz的小例子

    scheduler.scheduleJob(job, trigger); // 等待一段时间,然后关闭Scheduler Thread.sleep(60 * 1000); // 睡眠1分钟 scheduler.shutdown(); } } ``` 在上述代码中,我们创建了一个名为`myJob`的`Job`,它...

    spring定时任务quartz.jar

    这些参数可以在`quartz.properties`文件中设置,比如`org.quartz.scheduler.instanceName`用于指定调度器的名称,`org.quartz.threadPool.threadCount`设定线程池大小。还有其他参数,如数据库相关的配置,用于存储...

    spring-boot-quartz.zip

    而Quartz是Java领域中广泛使用的任务调度库,能够帮助开发者安排和执行周期性任务。当我们结合Spring Boot与Quartz时,可以利用Spring的自动配置特性来轻松地集成和管理定时任务。 在Spring Boot项目中集成Quartz,...

    Java_Spring与Quartz的整合

    在Java Spring中整合Quartz,可以利用Spring的管理能力来控制Quartz的作业和触发器,使得整个系统更加灵活和易于维护。以下将详细介绍如何进行Spring与Quartz的整合。 1. **集成步骤** - 添加依赖:首先,确保在...

    common-quartz.zip

    <groupId>org.quartz-scheduler <artifactId>quartz <version>your-quartz-version <groupId>org.springframework.boot <artifactId>spring-boot-starter-jdbc ``` 接下来,你需要配置Quartz。在SpringBoot...

    quartz-2.2.0.jar.zip

    scheduler.scheduleJob(job, trigger); } } ``` 在上面的示例中,`MyJob`是你自定义的作业类,需要实现`org.quartz.Job`接口。`startNow()`指定了触发器立即启动,`scheduleJob()`方法将作业和触发器关联起来并...

    Quartz2.2.1java任务持久(mysql)存储demo以及资料

    scheduler.scheduleJob(job, trigger); System.out.println("定时任务已启动..."); } } ``` 通过以上步骤,你就成功地在Quartz2.2.1中配置了MySQL作为任务的持久化存储,并创建了一个每隔10秒执行一次的简单任务...

    java-springboot-quartz-定时任务.zip

    scheduler.scheduleJob(job, trigger); } } ``` 在上述代码中,`MyTask`是你自定义的任务类,它需要实现`org.quartz.Job`接口,并重写`execute`方法,以定义任务的具体逻辑。 ```java import org.quartz....

    quartz2.1.6

    org.quartz.scheduler.instanceName = MyScheduler org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool org.quartz.threadPool.threadCount = 5 org.quartz.jobStore.class = org.quartz.impl....

    quartz3个版本 v1.7.3 v2.2.1 v2.2.2

    Quartz是一款广泛应用于Java环境中的开源任务调度框架,它的主要功能是允许开发者安排任务在特定时间执行,从而实现系统的自动化管理。在这个压缩包中包含了Quartz的三个不同版本:v1.7.3、v2.2.1和v2.2.2,这些版本...

    基于java的Quartz的实例

    Quartz是Java领域一个强大的、开源的工作调度框架,它允许开发者创建、调度和管理作业,以执行复杂的定时任务。在本实例中,我们将探讨如何基于Java实现Quartz的使用,以及如何将它集成到MyEclipse开发环境中。 一...

Global site tag (gtag.js) - Google Analytics