TodoStatusTimerBean.java
Dosyayı İndir
package com.todo.ejb;
import java.util.Date;
import java.util.List;
import javax.annotation.Resource;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ejb.Timeout;
import javax.ejb.Timer;
import javax.ejb.TimerService;
import javax.mail.MessagingException;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import com.todo.entity.Todo;
@Stateless
public class TodoStatusTimerBean implements TodoStatusTimerBeanLocal {
@PersistenceContext(unitName = "TodoJPA")
private EntityManager entityManager;
@Resource
TimerService timerService;
@EJB
private MailSenderSessionBeanLocal mailSenderBean;
public void startTimer(Date startDate, Long interval) {
timerService.createTimer(startDate, interval, "Mail Todo Status");
}
@Timeout
public void sendMailTodoStatus(Timer timer) {
if (timer.getInfo() instanceof String) {
if (((String) timer.getInfo()).equals("Mail Todo Status")) {
System.out.println("Todo statüleri gönderiliyor : " + new Date());
Query query=entityManager.createQuery("SELECT t FROM Todo as t WHERE t.isactive=?1 and t.date > ?2");
query.setParameter(1, true);
query.setParameter(2, new Date());
List<Todo> list=(List<Todo>)query.getResultList();
System.out.println("list size : " + list.size());
if (list.size() <= 0) {
return;
}
String subject = "Aktif ve zamani gecmis todo'lar";
String body = "";
for (Todo todo : list) {
body += "id:" + todo.getId() + " baslik:" + todo.getTitle() + "<br/>";
}
System.out.println("body :" + body);
try {
mailSenderBean.sendMail("admin@godoro.com", "membership@godoro.com", subject, body);
} catch (MessagingException e) {
e.printStackTrace();
}
}
}
}
}
Dosyayı İndir