SendMailTimer.java
3.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
package com.espeed.yxy.timer;
import java.io.PrintWriter;
import java.io.StringWriter;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import com.espeed.yxy.pojo.YxySendMailMaster;
import com.espeed.yxy.pojo.YxySendSmtpInfo;
import com.espeed.yxy.service.YxySendMailService;
import com.espeed.yxy.tool.LogsTool;
/**
* 程序名称: EspeedMail_时速邮箱
* 程序版本: V1.0
* 作 者: 深圳市科飞时速网络技术有限公司(0755-88843776)
* 版权所有: 深圳市科飞时速网络技术有限公司
* 技术支持: Tech@21gmail.com
* 单元名称: 定时器主方法(营销游)
* 开始时间: 2013.12.09
* 程 序 员: 谢勇
* 最后修改:
* 备 注: 如需修改请通知程序员
*/
public class SendMailTimer {
private YxySendMailService yxysendmailservice;
public static String nowtimer="";
/**定时器运行方法*/
public void timerMethod(){
try {
System.out.println("新任务开始进来了!");
ThreadPoolTask s=ThreadPoolTask.getMethodInstance();
//当前线程量
System.out.println("当前线程量:"+s.getThreadNum());
//变量定义区
//int smtpnum=0;
//int mailnum=0;
//获取所有smtp
List<YxySendSmtpInfo> smtpinfoList= yxysendmailservice.findSmtpInfoSetNum();
//yxysendmailservice.updatesmtpstatus();//更改选定smtp状态
//将smtp打乱
List<YxySendSmtpInfo> newsmtpList=getRandom(smtpinfoList);
//smtpnum=newsmtpList.size();
System.out.println("获取到了"+newsmtpList.size()+"个SMTP");
//判断是否存在SMTP
if(newsmtpList.size()>0){
// //判断是否有可待发邮件(指定条)
// List<YxySendMailMaster> mailList=yxysendmailservice.findByMailNum(smtpnum);
// mailnum=mailList.size();
// System.out.println("新加入"+mailnum+"个邮件!");
// if(mailnum>0){
// //获取smtp后缀配置信息
// //List<YxySmtpSuffixSet> smtpsuffixsetList=yxysendmailservice.findAllSmtpSuffixSet();
// //调用线程池
// //s.getResult(yxysendmailservice, newsmtpList, mailList, smtpsuffixsetList);
// s.getResult(yxysendmailservice, newsmtpList, mailList);
// }else{
// System.out.println("没有待发邮件!");
// }
//调用线程池
s.getResult(yxysendmailservice, newsmtpList);
}else{
System.out.println("没有可用SMTP!");
}
} catch (Exception e) {
System.out.println("定时器异常了...");
e.printStackTrace();
//写入日志
StringWriter sw = new StringWriter();
e.printStackTrace(new PrintWriter(sw, true));
String str = sw.toString();
LogsTool.erroLogs(str);
}
}
//将集合打乱
public static List<YxySendSmtpInfo> getRandom(List<YxySendSmtpInfo> value){
List<YxySendSmtpInfo> newSmtpList=new ArrayList<YxySendSmtpInfo>();
int n = value.size();
Random rand = new Random();
boolean[] bool = new boolean[n];
int num =0;
for (int i = 0; i<n; i++){
do{
//如果产生的数相同继续循环
num = rand.nextInt(n);
}while(bool[num]);
bool[num] =true;
newSmtpList.add(value.get(num));
}
return newSmtpList;
}
//------------------get set--------------------
public YxySendMailService getYxysendmailservice() {
return yxysendmailservice;
}
public void setYxysendmailservice(YxySendMailService yxysendmailservice) {
this.yxysendmailservice = yxysendmailservice;
}
}