quartz 的简单使用
0.依赖:
- <!-- 引入quartz对应的依赖 -->
- <dependency>
- <groupId>org.quartz-scheduler</groupId>
- <artifactId>quartz</artifactId>
- <version>2.2.</version>
- </dependency>
- <dependency>
- <groupId>org.quartz-scheduler</groupId>
- <artifactId>quartz-jobs</artifactId>
- <version>2.2.</version>
- </dependency>
1.配置。
- <!-- ******************定时任务quartz配置********************* -->
- <!-- 注册自定义作业类 -->
- <bean id="myJob" class="com.shan.bos.service.jobs.MailJob">
- <property name="username" value="lsXXX"/>
- <property name="password" value="lXXX"/>
- <property name="smtpServer" value="XX.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>/ * * * * ? </value>
- </property>
- </bean>
- <!-- 配置调度工厂 -->
- <bean id="schedulerFactoryBean" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
- <!-- 注入触发器 -->
- <property name="triggers">
- <list>
- <ref bean="myTrigger"/>
- </list>
- </property>
- </bean>
2. 定时的任务
- package com.shan.bos.service.jobs;
- import java.util.List;
- import java.util.Properties;
- import javax.annotation.Resource;
- import javax.mail.Authenticator;
- import javax.mail.Message.RecipientType;
- import javax.mail.PasswordAuthentication;
- import javax.mail.Session;
- import javax.mail.Transport;
- import javax.mail.internet.InternetAddress;
- import javax.mail.internet.MimeMessage;
- import com.shan.bos.dao.IWorkbillDao;
- import com.shan.bos.domain.Workbill;
- /**
- * 发送邮件的作业
- * @author Sea
- *
- */
- 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("要发邮件了。。。");
- try {
- //查询工单类型为新单的所有工单
- List<Workbill> list = workbillDao.findAll();
- System.out.println(list.get().toString());
- if(null != list && list.size() > ){
- 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("lshan511094523@163.com");
- 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;
- }
- }
quartz 的简单使用的更多相关文章
- 基于Quartz实现简单的定时发送邮件
一.什么是Quartz Quartz 是一个轻量级任务调度框架,只需要做些简单的配置就可以使用:它可以支持持久化的任务存储,即使是任务中断或服务重启后,仍可以继续运行.Quartz既可以做为独立的应用 ...
- Quartz定时任务简单实例
文章纲要: 初步搭建一个由Quartz为引擎集群的定时任务模块,功能为每隔30秒打印一条信息(Hello World!!!) 一.环境 Spring MVC Mevan Quartz 2.2.1 二. ...
- C#中Quartz的简单易懂定时任务实现
作为一个优秀的开源调度框架,Quartz 具有以下特点: 强大的调度功能,例如支持丰富多样的调度方法,可以满足各种常规及特殊需求: 灵活的应用方式,例如支持任务和调度的多种组合方式,支持调度数据的多种 ...
- Quartz的简单使用
一.Quartz 介绍 Quartz是Java领域最著名的.功能丰富的.开放源码的作业调度工具,几乎可以在所有的Java应用程序中集成--从小的单机应用到大的电子商务系统. Quartz可以用来执行成 ...
- Quartz SpringBoot 简单整合一下
一次简单的代码整合记录. 数据库准备 如果是MySQL可能出现一些小问题.比如联合主键长度超限制,已经记录解决办法了. CREATE TABLE QRTZ_JOB_DETAILS ( SCHED_NA ...
- Quartz.Net简单使用
Quartz.Net为开源的作业调度框架,使用方便,实现IJob接口,及相关配置,即可实现调度. 项目包安装: install-package Quartz install-package log4n ...
- 使用Quartz Job 简单的做一个定时服务
第一步:创建一个windows服务 第二步:通过NuGet 安装Quartz (我搜索了Quartz 关键字 安装了 ) 第三步 代码部分 任务类 如 多个任务 就多几个类 public class ...
- Quartz简单案例
需求需要开发一个每天定时推送消息给微信用户,第一次接触quartz,简单案例 1. 先编辑要执行的任务 测试类代码 package com.wqq.test.quartz; import org.sp ...
- Quartz和Spring Task定时任务的简单应用和比较
看了两个项目,一个用的是Quartz写的定时器,一个是使用spring的task写的,网上看了2篇文章,写的比较清楚,这里做一下留存 链接一.菠萝大象:http://www.blogjava.net/ ...
随机推荐
- java导出Excel 好文收藏
http://www.cnblogs.com/Damon-Luo/p/5919656.html https://www.cnblogs.com/klguang/p/6425422.html
- TensorFlow笔记-05-反向传播,搭建神经网络的八股
TensorFlow笔记-05-反向传播,搭建神经网络的八股 反向传播 反向传播: 训练模型参数,在所有参数上用梯度下降,使用神经网络模型在训练数据上的损失函数最小 损失函数:(loss) 计算得到的 ...
- 遍历json 对象的属性并且动态添加属性
昨天因为公司的一个需求,所以就研究了一下json对象的属性的遍历和动态修改: var person= { name: 'zhangsan', pass: '123' , 'sni.ni' : 'sss ...
- JS页面打印预览功能
点击按钮后就可以直接打印预览,并且隐藏了按钮,如果你不希望按钮显示,可以把那部分代码删除就可以了. <html><head><meta http-equiv=" ...
- python安装途中遇到的问题和解决方法
一.setuptools安装错误:RuntimeError: Compression requires the (missing) zlib module 1. 描述 搞了个腾讯云的服务器,闲在手上没 ...
- 什么是Map-Reduce
Map-Reduce本身并不是算法:而是一种处理模式:因为在大数据分布式这种场景下,处理数据运算和单机版不同:需要协同多台机器,并行计算:于是有了map-reduce这种模式,map阶段是数据处理,在 ...
- webpack入门认知
webpack 是什么? 本质上,webpack 是一个现代 JavaScript 应用程序的静态模块打包器(module bundler).当 webpack 处理应用程序时,它会递归地构建一个依赖 ...
- 转 WCF中同步和异步通讯总结
我这样分个类: WCF中, 以同步.异步角度考虑通讯的方式分为四种:跨进程同步.跨进程异步.发送队列端同步.发送队列端异步.之所以造成这样的结果源于两个因素,一个是传统概念上的同异步,一个是对于WCF ...
- 使用axis2的wsdl2java把wsdl生成java文件
原文地址:http://blog.csdn.net/walkcode/article/details/7661674 有时在我们的开发中可能会有这种情况就是你要使用webservice但是对方没有给你 ...
- Qt 常用类——QStandardItemModel
转载:落叶知秋时 类QabstractItemModel,QabstractListModel,QAbstractTableModel不保存数据,用户需要从这些类派生出子类,并在子类中定义某种数据结构 ...