quartz使用的是1.8.6版本
import java.util.Date;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class SimpleJob implements Job {
@Override
public void execute(JobExecutionContext jobCtx)
throws JobExecutionException {
System.out.println(jobCtx.getTrigger().getName() + " triggered.time.is:" + (new Date()));
}
}
import java.util.Date;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.SchedulerFactory;
import org.quartz.SimpleTrigger;
import org.quartz.impl.StdSchedulerFactory;
public class SimpleTriggerRunner {
public static void main(String[] args) {
try {
//创建一个JobDdtail实例,指定SimpleJob,组名为jgroup1,名称为job1_1
JobDetail jobDetail = new JobDetail("job1_1", "jgroup1", SimpleJob.class);
//通过SimpleTrigger定义调度规则:马上启动,每2秒运行一次,共运行100次
SimpleTrigger simpleTrigger = new SimpleTrigger("trigger1_1", "tgroup1");
simpleTrigger.setStartTime(new Date()); //开始时间
simpleTrigger.setRepeatInterval(2000); //运行频率
simpleTrigger.setRepeatCount(10); //运行次数
//通过SchedulerFactory获取一个调度器实例
SchedulerFactory schedulerFactory = new StdSchedulerFactory();
Scheduler scheduler = schedulerFactory.getScheduler();
//注册并进行调度
scheduler.scheduleJob(jobDetail, simpleTrigger);
//调度开始
scheduler.start();
} catch (SchedulerException e) {
e.printStackTrace();
}
}
}
运行结果:
trigger1_1 triggered.time.is:Wed Apr 17 10:39:10 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:11 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:13 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:15 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:17 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:19 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:21 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:23 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:25 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:27 CST 2013
trigger1_1 triggered.time.is:Wed Apr 17 10:39:29 CST 2013
每次执行都是n+1条
其中注册代码也可以写成
simpleTrigger.setJobGroup("jgroup1"); //1.指定关联的Job组名
simpleTrigger.setJobName("job1_1"); //1.指定关联的Job名称
scheduler.addJob(jobDetail, true); //2.注册JobDetail
scheduler.scheduleJob(simpleTrigger); //3.注册指定了关联jobDetail的Trigger
1.2.3的顺序不能随意变动
分享到:
相关推荐
3. **作业注册**:创建一个Job类,继承自`org.elasticjob.lite.api.job.SimpleJob`,并在`execute`方法中编写业务逻辑,即更新学生年龄到100岁的代码。记得在Job类上添加注解`@ElasticJob annotation`,用于指定作业...
接下来,创建一个JobDetail bean,将Job类与特定的Job实例关联: ```xml ``` 确保替换`yourTargetObject`为包含`executeJobMethod`方法的对象引用。 接着,创建一个Trigger,定义Job的执行时机。例如,...
启动Scheduler后,`SimpleJob`类中的`execute`方法将会按照设定的时间间隔打印消息。 在实际应用中,可以创建多个Job和Trigger,或者对同一个Job设置多个Trigger,以满足复杂的需求。同时,Quartz还提供了集群支持...
Elastic-job-lite是轻量级的分布式调度解决方案,它适合资源有限的环境,比如一台机器上部署多个elastic-job实例。而Elastic-job-cloud则是提供更完整的分布式调度解决方案,可以在大规模集群上部署,并且具备了任务...
- **Spring Bean管理**:Elastic-job的Job实例可以通过Spring的Bean管理,实现依赖注入,增强任务的灵活性。 10. **版本选择**: - **选择Elastic-job-Lite还是Elastic-job-Cloud**:根据实际的项目规模和资源...
在这个小例子中,我们将深入理解如何使用Java Quartz来实现定时任务。 首先,我们需要引入Quartz的依赖。在Maven项目中,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org.quartz-scheduler ...
ElasticJob-Lite的作业类型主要通过SimpleJob接口实现,其中包含一个execute方法,该方法会在作业执行时被调用。作业按照分片逻辑(sharding)被执行,每个分片对应一个作业实例。ShardingContext是作业执行时上下文...
8. **API使用**:在代码中,我们需要通过`SimpleJob`或`DataflowJob`接口实现自己的任务逻辑。`SimpleJob`适用于执行简单逻辑的任务,而`DataflowJob`适用于数据流处理,支持批处理。 9. **Spring整合**:Elastic-...
你可以定义自己的作业类,实现`SimpleJob`接口,覆盖`execute`方法来编写实际的业务逻辑。 2. **作业实例**(Job Instance):每个作业在不同节点上的运行实例称为作业实例。同一个作业可以在集群中的多个节点上...
JobDetail job = JobBuilder.newJob(SimpleJob.class) .withIdentity("myJob", "group1") // 名称和组别 .build(); ``` 4. **创建Trigger**:配置触发器,如使用SimpleTrigger,设置开始时间和重复频率。 ```...
在这个例子中,`SimpleJob`会在每五分钟执行一次,根据`cronExpression`的时间规则。 **扩展与优化** 1. 使用`StatefulJob`接口,如果任务状态需要在执行之间保持,可以实现这个接口。 2. 通过`JobBuilder`和`...
在这个例子中,我们创建了一个名为`SimpleJob`的作业,它在每次触发时打印当前时间。然后我们创建了一个触发器,设置为每10秒执行一次。最后,我们将作业和触发器添加到调度器,任务就会按照设定的间隔重复执行。 ...
- 定义作业类,实现`SimpleJob`接口或使用注解`@ElasticJob`。 - 在作业服务器上启动作业实例。 - 在调度服务器上设置调度规则。 - 监控作业执行情况,可以通过日志或注册中心查看。 5. **最佳实践** - 尽可能...
- 调度Job:使用Scheduler实例将JobDetail和Trigger关联起来,然后启动Scheduler。 3. **示例源码**: 包含的示例源码可以帮助你快速理解如何在项目中集成Quartz。例如,创建一个简单的Job并用CronTrigger调度它...
在分布式系统中,任务调度是不可或缺的一环,Elastic-Job就是一款强大的分布式任务调度框架,由当当网开源,它结合了Elasticsearch Job和Simple Job两个项目,提供了轻量级、高可用的分布式任务调度解决方案。...
2. **Job类**:自定义的作业类,实现了`SimpleJob`、`DataflowJob`或`StatelessJob`接口,其中`execute`方法是任务执行的核心代码。 3. **Spring配置**:可能包含Spring的配置文件,用于注册Job Bean,以及设置...
这个Job实例会在每次触发时打印当前时间并休眠25秒。 ### 4. CronTrigger概述 CronTrigger允许使用Cron表达式定义执行时间,如"0 9 * * * ?"表示每天9点整执行。配置CronTrigger通常会比SimpleTrigger更复杂,但...
每个Job实例在表中对应一条记录。 2. **QRTZ_TRIGGERS**:这个表保存了触发器的信息,如触发器类型(SimpleTrigger或CronTrigger)、触发时间、重复间隔等。每个触发器对应表中的一个条目。 3. **QRTZ_CRON_...
public class SimpleJob implements Job { @Override public void execute(JobExecutionContext context) { System.out.println("SimpleJob is running..."); // 执行你的任务代码 } } ``` 接下来,我们需要...