spring+mybatis+quart2定时发送邮件
来源:互联网 发布:远程软件哪个好用mac 编辑:程序博客网 时间:2024/06/05 00:24
今天有个小需求,每天从9点到20点每隔4小时发送接口检测失败的邮件,之前没接触过quart2,正好借这次需求来学习下...下面直接上代码
spring-basic.xml中的配置如下
<!-- 调度工厂 -->
<!-- 总管理类 如果将lazy-init='false'那么容器启动就会执行调度程序 -->
<bean name="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean">
<property name="triggers"> <!-- triggers是Spring定时器的特殊属性 -->
<list>
<ref bean="myJobTrigger" />
</list>
</property>
</bean>
<!-- 启动触发器的配置结束 -->
<!-- 调度的配置开始 --><!--quartz-1.8以前的配置
<bean id="myJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerBean">
<property name="jobDetail">
<ref bean="myJobDetail" />
</property>
<property name="cronExpression">
<value>0/1 * * * * ?</value>
</property>
</bean>-->
<!-- quartz-2.x的配置 --> <!-- 主定时计划 定义触发时间 -->
<bean id="myJobTrigger"
class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail"> <!-- jobDetail是Spring定时器的特殊属性 -->
<ref bean="myJobDetail" />
</property>
<property name="cronExpression">
<value>0 0 9-20/4 * * ?</value>
</property>
</bean>
<!-- 调度的配置结束 -->
<!-- job的配置开始 --> <!-- 定义调用对象和调用对象的方法 -->
<bean id="myJobDetail"
class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean">
<property name="targetObject">
<!-- 调用的类 -->
<ref bean="myJob" />
</property>
<!-- 调用类中的方法 -->
<property name="targetMethod">
<value>work</value> <!-- 就是java类中的任务方法 -->
</property>
</bean>
<!-- job的配置结束 -->
<!-- 工作的bean -->
<bean id="myJob" class="com.ppdai.controller.MyJob" />
此处就是你实现的业务类包括方法:work()
@Controller
public class MyJob {
private MimeMessage mailMsg;
private JavaMailSender jms;
@Autowired
private SystemInfoService systemInfoService;
public void work() {
//get [interface_Management]'s url and email ,judge interface 's status
List<String> emailList = systemInfoService.getAllEmailInterfaceManagement();
if(emailList!=null && emailList.size()>0){
EmailEntity emailEntity = new EmailEntity();
String add = "";String content ="请各领导通知相关负责人检查对应接口!";
StringBuffer sBuffer = new StringBuffer();
sBuffer.append(
"<hr />" + "(本邮件是程序自动下发,请勿回复!)<br /><hr />\n"+add + "<table border=\"1\">\n" + " <tr>\n"
+ " <th>接口地址</th>\n" + " <th>状态码</th>\n" + " <th>备注</th>\n" + " </tr>\n");
try {
for(int i=0;i<emailList.size();i++){
String email = emailList.get(i);
List<String> urlsList = systemInfoService.queryInterfaceManagementByEmail(email);
if(urlsList!=null & urlsList.size()>0){
for(int j=0;j<urlsList.size();j++){
HttpClient client = new DefaultHttpClient();
synchronized(client){
HttpPost post = new HttpPost(urlsList.get(j));
HttpResponse httpResponse = client.execute(post);
/**判断是否请求成功getStatusCode()==200*/
if (httpResponse.getStatusLine().getStatusCode() != HttpStatus.SC_OK) {
sBuffer.append(" <tr>\n" + " <td>" + urlsList.get(j) + "</td>\n" + " <td bgcolor='#FF0000'>"
+ httpResponse.getStatusLine().getStatusCode() + "</td>\n" + " <td>"
+ content + "</td>\n"
+ " </tr>\n");
}
System.out.println("date:" + new Date().toString());
}
........//实现你的业务方法
Cron表达式的详细用法
字段 允许值 允许的特殊字符
秒 0-59 , - * /
分 0-59 , - * /
小时 0-23 , - * /
日期 1-31 , - * ? / L W C
月份 1-12 或者 JAN-DEC , - * /
星期 1-7 或者 SUN-SAT , - * ? / L C #
年(可选) 留空, 1970-2099 , - * /
表达式举例
"0 0 12 * * ?" 每天中午12点触发
"0 15 10 ? * *" 每天上午10:15触发
"0 15 10 * * ?" 每天上午10:15触发
"0 15 10 * * ? *" 每天上午10:15触发
"0 15 10 * * ? 2005" 2005年的每天上午10:15触发
"0 * 14 * * ?" 在每天下午2点到下午2:59期间的每1分钟触发
"0 0/5 14 * * ?" 在每天下午2点到下午2:55期间的每5分钟触发
"0 0/5 14,18 * * ?" 在每天下午2点到2:55期间和下午6点到6:55期间的每5分钟触发
"0 0-5 14 * * ?" 在每天下午2点到下午2:05期间的每1分钟触发
"0 10,44 14 ? 3 WED" 每年三月的星期三的下午2:10和2:44触发
"0 15 10 ? * MON-FRI" 周一至周五的上午10:15触发
"0 15 10 15 * ?" 每月15日上午10:15触发
"0 15 10 L * ?" 每月最后一日的上午10:15触发
"0 15 10 ? * 6L" 每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6L 2002-2005" 2002年至2005年的每月的最后一个星期五上午10:15触发
"0 15 10 ? * 6#3" 每月的第三个星期五上午10:15触发
- spring+mybatis+quart2定时发送邮件
- Spring定时发送邮件
- spring和quartz进行定时邮件发送!
- spring利用javamail,quartz定时发送邮件
- Spring整合Quartz定时发送邮件
- spring利用javamail,quartz定时发送邮件
- 利用spring定时器发送定时邮件
- 定时发送发送邮件
- vbs定时发送邮件
- php定时发送邮件
- java定时发送邮件
- 定时发送邮件
- 定时发送邮件
- 定时发送邮件
- 定时发送邮件
- PHP定时发送邮件
- PHP 定时发送邮件
- delphi邮件定时发送
- java关于发送邮件的一些常见问题分享
- 汇编语言:课程设计1
- 响应式和自适应的区别(转)
- Atitit webservice的发现机制 discover机制
- TCP三次握手四次挥手过程分析
- spring+mybatis+quart2定时发送邮件
- Spring MVC + Redis 使用Maven
- ADB - adb push/pull 真机和PC的数据传输
- Unity ios下播放视频文件
- 对AngularJs指令的初步认识
- UE4的C++代码中的class关键字起什么作用?
- 用户注册和登录案例
- android studio 创建 jniLibs文件夹用于放置jar包和os文件
- 新人报道~~