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; }
定时器demo
最新推荐文章于 2021-06-24 10:38:34 发布