您好我正在实施一个带有电子邮件发送功能的Web应用程序。为了使我们的电子邮件服务器不被列入黑名单,我们每5秒钟最多只能发送一封电子邮件。所以我想创建一个@Singleton
EJB电子邮件发件人,这样只有一个EJB实例负责发送整个应用程序中的所有电子邮件。我应该如何实施5秒计数器,以便每5秒发送最多1封电子邮件?例如,该类看起来像那样
@Singleton
public class EmailSender {
public void sendEmail(String msg){
....
}
}
答案 0 :(得分:0)
尝试使用@Schedule:
@Singleton
public class EmailSender {
Queue<Email> queue;
@Schedule(second = "*/5", minute = "*", hour = "*")
public void sendEmail(String msg){
if (!queue.isEmpty()) {
//get queue element and send email
}
}
}