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/ ...
随机推荐
- 按的第一个greasemonkey插件:评论时可以粘贴啦~~
原来的样子:如果按ctrl+V会跳出错误
- 【转】Ubuntu12.04 LTS下环境变量设置
原文网址:http://blog.chinaunix.net/uid-26963688-id-3221439.html 1.设置当前用户环境变量(对root用户无效) 打开终端输入:light@cha ...
- 通过手动安装来启动ZStack
当您使用手动安装手册完成ZStack的安装之后,您可以继续进行一些必要的配置 以便用它来自动云环境.ZStack的管控工具zstack-ctl会安装到每一个ZStack管理节点,您可以使用它来控制本地 ...
- cookie、localStorage、sessionStorage 的生命周期
生命周期 存储 生命周期 cookie 没有设置 expires 选项时,cookie 的生命周期仅限于当前会话中,关闭浏览器意味着这次会话的结束,所以会话 cookie 仅存在于浏览器打开状态之下. ...
- vue-cli、webpack提取第三方库-----DllPlugin、DllReferencePlugin
需要安装的插件有 extract-text-webpack-plugin assets-webpack-plugin clean-webpack-plugin npm install extract- ...
- Apache Spark 内存管理详解
在spark里面,内存管理有两块组成,一部分是JVM的堆内内存(on-heap memory),这部分内存是通过spark dirver参数executor-memory以及spark.executo ...
- selenium启动谷歌所遇到的问题
最近在学习selenium webdriver,发现启动火狐时,运行非常慢,几天前一直在尝试启动谷歌驱动启动,但启动中总遇到问题,启动不起来,一直百度查找方法,还是没搞定,个人比较执着,爱钻牛角尖,弄 ...
- golang sizeof 占用空间大小
C语言中,可以使用sizeof()计算变量或类型占用的内存大小.在Go语言中,也提供了类似的功能, 不过只能查看变量占用空间大小.具体使用举例如下. package main import ( &qu ...
- 【python】网络编程-TCP协议套接字
服务器端: #!/usr/bin/env python from socket import * from time import ctime HOST = '' PORT = 21567 BUFSI ...
- 【python】os模块常用命令
python编程时,经常和文件.目录打交道,这是就离不了os模块.os模块包含普遍的操作系统功能,与具体的平台无关.以下列举常用的命令 1. os.name()——判断现在正在实用的平台,Window ...