Quartz 新手自学(简单应用)

简单定时框架,

第一次接触,自学

官方DOC:  http://www.quartz-scheduler.org/api/2.1.7/index.html

直接上简单例子,

先导包,

让自己写的类实现Job

public class Quartz implements Job{
public void execute(JobExecutionContext jec) throws JobExecutionException {
// TODO Auto-generated method stub
System.out.println("定时打印我!~~");
}

public static void main(String[] args) throws Exception {
addJob();
}

public static void addJob(){
try {
StdSchedulerFactory factory = new StdSchedulerFactory();
Scheduler scheduler = factory.getScheduler();
JobDetail job = JobBuilder.newJob(Quartz.class).build();
Trigger t = TriggerBuilder.newTrigger().withSchedule(CronScheduleBuilder.cronSchedule("* * * * * ?")).build();
scheduler.scheduleJob(job,t);
scheduler.start();
} catch (SchedulerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

"* * * * * ?"  表达式 表示每秒执行一次, 秒,分钟,时,日,月,星期,年

有工具可以自动生成此表达式,自行查找.

JobBuilder 可以指定唯一标识:.withIdentity(String,String); 第一个String是唯一的name 标记,第二个String是唯一的group 即组名. 类似于为JobBuilder指定一个唯一的ID作表识




Quartz是一个完全由java编写的开源作业调度框架。不要让作业调度这个术语吓着你。尽管Quartz框架整合了许多额外功能, 但就其简易形式看,你会发现它易用得简直让人受不了!。简单地创建一个实现org.quartz.Job接口的java类。Job接口包含唯一的方法:
public void execute(JobExecutionContext context)
throws JobExecutionException;
在你的Job接口实现类里面,添加一些逻辑到execute()方法。一旦你配置好Job实现类并设定好调度时间表,Quartz将密切注意剩余时间。当调度程序确定该是通知你的作业的时候,Quartz框架将调用你Job实现类(作业类)上的execute()方法并允许做它该做的事情。无需报告任何东西给调度器或调用任何特定的东西。仅仅执行任务和结束任务即可。如果配置你的作业在随后再次被调用,Quartz框架将在恰当的时间再次调用它。 ----摘自网络

在Quartz使用时,有可能,消息发送一次,但是接收到是两到多条,在配置文件中指定具体方法后,添加配置

<property name="concurrent" value="false" />   //为每次发送出去的消息,添加状态标记.防止前一个线程执行job未执行完毕,后一个线程去执行新的,或者终止前面线程造成数据错误.

具体配置PS:


<bean id="myProfit"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="myJob" />
</property>
<property name="targetMethod">
<value>profit</value>
</property>
<property name="concurrent" value="false" />  <!-- 这里 -->
</bean>

<bean id="profitJob"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="myProfit" />
</property>
<property name="cronExpression">
<!-- 每5分钟执行一次 -->
<value>0 0/5 * * * ?</value>
</property>
</bean>



此为新手第一次接触Quartz,粗鄙,见谅! 此为蜗牛爬山的第一步~~

集群搭建,附大神家 : http://blog.csdn.net/gklifg/article/details/27090179

<bean id="myProfit"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<ref bean="myJob" />
</property>
<property name="targetMethod">
<value>profit</value>
</property>
<property name="concurrent" value="false" />  <!-- 告别多线程 -->
</bean>

<bean id="profitJob"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<ref bean="myProfit" />
</property>
<property name="cronExpression">
<!-- 每5分钟执行一次 -->
<value>0 0/5 * * * ?</value>
</property>
</bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值