- 浏览: 179914 次
- 性别:
- 来自: 广州
文章分类
最新评论
以前在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");
....
}
}
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");
....
}
}
发表评论
-
Eclipse中Hibernate Tools安装使用
2015-09-02 14:05 576eclipse->Help>Install Ne ... -
Excel保护破解
2015-08-12 15:56 727打开受保护的Excel表格,按“ALT”+“F11”键, ... -
在Web项目中配置Log4j
2014-02-19 21:29 8733在Web项目中配置Log4j 1. 动态的改 ... -
C3P0连接池详细配置
2014-02-19 21:17 734C3P0连接池详细配置 <c3p0-config ... -
转:js获取各种高度
2013-07-09 19:10 1060<script type="text/jav ... -
转:json的stringify方法作用
2013-07-04 00:14 1628可使用JSON.parse(str)将其转化为json对象 ... -
Sublime Text 2快捷键~
2013-06-30 23:19 986Ctrl+L 选择整行(按住-继续选择下行) Ctrl+ ... -
jquery表单验证-自定义及常用验证(转)
2013-04-04 23:14 1370<script type="text/java ... -
PL/SQL执行存储过程
2013-04-01 18:11 11481、PL/SQL中SQL窗口执行过程: BEGIN DBMS ... -
jboss、tomcat自定义classpath(转)
2013-04-01 14:16 4078现在的项目中自定义了很多共通的jar包,这些jar包如何导 ... -
EL表达式和JSTL标签(转)
2013-03-31 15:37 1407在JSP页面中,使用标签库代替传统的Java语言来实 ... -
EL表达式和JSTL标签(转)
2013-03-31 15:34 0在JSP页面中,使用标签 ... -
简单的导出excel
2013-03-25 16:29 1005response.setContentType("a ... -
JS中URL编码参数(转) --- 乱码经过编码两次得以解决
2013-03-17 14:01 4336网上有很多文字作品写 ... -
jquery autocomplete示例
2013-03-15 18:30 9742使用jquery的autocomplete插件~~,目前网上有 ... -
GreyBox官网~~
2013-03-01 17:36 1031http://orangoo.com/labs/GreyBox ... -
(转)SQL 优化原则
2013-02-28 10:29 747一、问题的提出 在应用系统开发初期,由于开发数据库数据比 ... -
修改tomcat项目的图标
2013-02-28 10:23 852部署在tomcat中的项目在运行的时候,地址栏都是那个标志的小 ... -
如何修改和查看tomcat内存大小
2013-02-28 10:06 1049为了解决tomcat在大进行 ... -
eclipse修改内存启动参数
2013-02-28 09:56 5061一般安装完eclipse之后,在安装目录下你应该可以看到有一个 ...
相关推荐
- `org.quartz.scheduler.instanceId`: 用来标识scheduler实例,应保证全局唯一,可以设置为"AUTO"让Quartz自动生成,或者通过"SYS_PROP"用系统属性设定。 - `org.quartz.threadPool.class`: 指定线程池实现类,...
Quartz Scheduler 是一种功能丰富、开源的任务调度程序库,可以在任何 Java 程序中使用。它可以用来创建简单或者复杂的执行次数可以达成千上万的任务。任务可以是任何 Java 可以做的事情。 什么是 Quartz Scheduler...
org.quartz.scheduler.instanceName = DefaultQuartzScheduler #集群模式 #org.quartz.scheduler.instanceId = AUTO org.quartz.scheduler.rmi.export = false org.quartz.scheduler.rmi.proxy = false org.quartz....
4. **org.quartz.scheduler.threadName**:调度器线程的名称,可以是任何有效的 Java 线程名称。如果不指定,线程名将默认为实例名加上 "_QuartzSchedulerThread" 后缀。 5. **org.quartz.scheduler.idleWaitTime**...
Quartz.jar是一个非常重要的Java库,它主要用于计划和执行任务,特别是在企业级应用程序中。这个包包含了一系列的类和接口,使得开发者能够方便地创建、调度和管理定时任务。Quartz的核心是基于Cron表达式的,它允许...
scheduler.scheduleJob(jobDetail, trigger); scheduler.start(); } catch (Exception e) { e.printStackTrace(); } } } ``` 这里的`CronScheduleBuilder.cronSchedule("0/5 * * * * ?")`是使用cron表达式来...
org.quartz.scheduler.instanceName=TestScheduler org.quartz.scheduler.instanceId=AUTO ``` - `instanceName`: 定义调度器的名称。 - `instanceId`: 定义调度器的唯一标识符,默认值为 `AUTO` 表示自动生成...
scheduler.scheduleJob(job, trigger); } } ``` 最后,启动SpringBoot应用,Quartz会自动加载并执行配置的任务。如果你的应用需要在运行时动态添加、修改或删除任务,可以使用Spring提供的`SchedulerFactoryBean`...
这一步骤通过`Scheduler.scheduleJob`方法完成。 #### 启动调度程序 最后,调用`Scheduler.start`方法启动调度程序。这样,根据之前定义的触发器规则,作业将在指定的时间执行。 ### Quartz Scheduler的高级特性 ...
scheduler.scheduleJob(job, trigger); // 等待一段时间,然后关闭Scheduler Thread.sleep(60 * 1000); // 睡眠1分钟 scheduler.shutdown(); } } ``` 在上述代码中,我们创建了一个名为`myJob`的`Job`,它...
这些参数可以在`quartz.properties`文件中设置,比如`org.quartz.scheduler.instanceName`用于指定调度器的名称,`org.quartz.threadPool.threadCount`设定线程池大小。还有其他参数,如数据库相关的配置,用于存储...
而Quartz是Java领域中广泛使用的任务调度库,能够帮助开发者安排和执行周期性任务。当我们结合Spring Boot与Quartz时,可以利用Spring的自动配置特性来轻松地集成和管理定时任务。 在Spring Boot项目中集成Quartz,...
在Java Spring中整合Quartz,可以利用Spring的管理能力来控制Quartz的作业和触发器,使得整个系统更加灵活和易于维护。以下将详细介绍如何进行Spring与Quartz的整合。 1. **集成步骤** - 添加依赖:首先,确保在...
<groupId>org.quartz-scheduler <artifactId>quartz <version>your-quartz-version <groupId>org.springframework.boot <artifactId>spring-boot-starter-jdbc ``` 接下来,你需要配置Quartz。在SpringBoot...
scheduler.scheduleJob(job, trigger); } } ``` 在上面的示例中,`MyJob`是你自定义的作业类,需要实现`org.quartz.Job`接口。`startNow()`指定了触发器立即启动,`scheduleJob()`方法将作业和触发器关联起来并...
scheduler.scheduleJob(job, trigger); System.out.println("定时任务已启动..."); } } ``` 通过以上步骤,你就成功地在Quartz2.2.1中配置了MySQL作为任务的持久化存储,并创建了一个每隔10秒执行一次的简单任务...
scheduler.scheduleJob(job, trigger); } } ``` 在上述代码中,`MyTask`是你自定义的任务类,它需要实现`org.quartz.Job`接口,并重写`execute`方法,以定义任务的具体逻辑。 ```java import org.quartz....
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....
Quartz是一款广泛应用于Java环境中的开源任务调度框架,它的主要功能是允许开发者安排任务在特定时间执行,从而实现系统的自动化管理。在这个压缩包中包含了Quartz的三个不同版本:v1.7.3、v2.2.1和v2.2.2,这些版本...
Quartz是Java领域一个强大的、开源的工作调度框架,它允许开发者创建、调度和管理作业,以执行复杂的定时任务。在本实例中,我们将探讨如何基于Java实现Quartz的使用,以及如何将它集成到MyEclipse开发环境中。 一...