Quartz总结

quartz介绍和下载

官网:http://www.quartz-scheduler.org/

 

Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,它可以与J2EE与J2SE应用程序相结合也可以单独使用。Quartz可以用来创建简单或为运行十个,百个,甚至是好几万个Jobs这样复杂的程序。Jobs可以做成标准的Java组件或 EJBs。Quartz的最新版本为Quartz 2.2.3。

 

下载压缩包:

 

解压压缩包:

入门案例 

第一步:创建maven工程,导入spring和quartz相关依赖

 

第二步:创建任务类 普通的Java类

 

第三步:在spring配置文件中配置任务类

 

第四步:在spring配置文件中配置JobDetail(具体调用什么)    目标对象, 目标方法

 

第五步:在spring配置文件中配置触发器 (什么时候触发什么内容)      配置调用的内容和  调用的时机  

 

 

第六步:在spring配置文件中配置scheduler(任务中配置了很多个触发器)

 

第七步:加载spring配置文件,创建spring工厂

 

  1. 在BOS项目中引入quartz

第一步:在pom.xml中引入quartz和JavaMail的依赖

 

第二步:提供一个作业类,用于为系统管理员发送邮件

public class MailJob {

@Resource

private IWorkbillDao workbillDao;

private String username;//发件人的邮箱账号

private String password;//发件人的密码

private String smtpServer;//发件的服务器

public String getUsername() {

return username;

}



public void setUsername(String username) {

this.username = username;

}



public String getPassword() {

return password;

}



public void setPassword(String password) {

this.password = password;

}



public void execute() {

System.out.println("要发邮件了。。。" + new Date());

try {

//查询工单类型为新单的所有工单

List<Workbill> list = workbillDao.findAll();

if(null != list && list.size() > 0){

final Properties mailProps = new Properties();

mailProps.put("mail.smtp.host", this.getSmtpServer());

mailProps.put("mail.smtp.auth", "true");

mailProps.put("mail.username", this.getUsername());

mailProps.put("mail.password", this.getPassword());



// 构建授权信息,用于进行SMTP进行身份验证

Authenticator authenticator = new Authenticator() {

protected PasswordAuthentication getPasswordAuthentication() {

// 用户名、密码

String userName = mailProps.getProperty("mail.username");

String password = mailProps.getProperty("mail.password");

return new PasswordAuthentication(userName, password);

}

};

// 使用环境属性和授权信息,创建邮件会话

Session mailSession = Session.getInstance(mailProps, authenticator);

for(Workbill workbill : list){

// 创建邮件消息

MimeMessage message = new MimeMessage(mailSession);

// 设置发件人

InternetAddress from = new InternetAddress(mailProps.getProperty("mail.username"));

message.setFrom(from);

// 设置收件人

InternetAddress to = new InternetAddress("test@itcast.cn");

//这个应该从数据库中得到用户的邮箱地址

message.setRecipient(RecipientType.TO, to);

// 设置邮件标题

message.setSubject("系统邮件:新单通知");

// 设置邮件的内容体

message.setContent(workbill.toString(), "text/html;charset=UTF-8");

// 发送邮件

Transport.send(message);

}

}

} catch (Exception ex) {

ex.printStackTrace();

}

}



public String getSmtpServer() {

return smtpServer;

}



public void setSmtpServer(String smtpServer) {

this.smtpServer = smtpServer;

}

}

第三步:在spring配置文件中配置

<!-- 注册自定义作业类 -->

<bean id="myJob" class="com.itheima.jobs.MailJob">

<property name="username" value="itcast_server@126.com"/>

发件人的邮箱服务器  发件人是腾讯的就是用腾讯的服务器  如果是网易的就使用网易的邮箱发



<property name="password" value="147963qP"/>

<property name="smtpServer" value="smtp.126.com"/>

</bean>

<!-- 配置JobDetail -->

<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">

<!-- 注入目标对象 -->

<property name="targetObject" ref="myJob"/>

<!-- 注入目标方法 -->

<property name="targetMethod" value="execute"/>

</bean>



<!-- 配置触发器 -->

<bean id="myTrigger" class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">

<!-- 注入任务详情对象 -->

<property name="jobDetail" ref="jobDetail"/>

<!-- 注入cron表达式,通过这个表达式指定触发的时间点 -->

<property name="cronExpression">

<value>0/5 * * * * ?</value>

</property>

</bean>
<!-- 配置调度工厂 -->

<bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">

<!-- 注入触发器 -->

<property name="triggers">

<list>

<ref bean="myTrigger"/>

</list>

</property>

</bean>

 

 

springboot整合Quartz可以参考这篇博客:https://www.cnblogs.com/zhaww/p/8649118.html 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值