1.action走sendBathEmail方法,sendBathEmail 业务里写定时器,调用findPassWord方法。给一个全局变量a,变量a==0后,就结束定时器。
public int findPassWord(List<Member> ml)
throws MessagingException {
a--;
System.out.println("发邮件====》"+a);
if(a==0) {
return 0;
}
for (int i = 0; i < ml.size(); i++) {
Member m = ml.get(i);
System.out.println("list对象=====>" + m.getCnname()+i );
}
return 1;
}
@Override
public void sendBathEmail(String title, String mailAddressStr,
String content) throws MessagingException {
//獲取分组人数,进行定时发邮件
final List<Member> ml = new ArrayList<Member>();
Member m1 = new Member();
m1.setCnname("m1_dog");
Member m2 = new Member();
m2.setCnname("m2_cat");
Member m3 = new Member();
m3.setCnname("m3_dog");
Member m4 = new Member();
m4.setCnname("m4_cat");
ml.add(m1);
ml.add(m2);
ml.add(m3);
ml.add(m4);
System.out.println("外层service开始");
a = 10;
System.out.println("外层====》》"+a);
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
try {
System.out.println("定时器启动==》" + a);
boolean b = true;
int flag = 0;
flag = findPassWord(ml);
if(flag == 0 ) {
b = false;
}
//关闭定时器
if(!b) {
cancel();
System.out.println("定时器结束==》" + a);
}
}catch(Exception e){
e.printStackTrace();
}
}
}, new Date(), 3*1000);
}
public int a;
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}