繁体   English   中英

Java @Singleton EJB执行方法最多每5秒一次

[英]Java @Singleton EJB executing method at most every 5 seconds

嗨,我正在实现一个具有电子邮件发送功能的Web应用程序。 为了不将我们的电子邮件服务器列入黑名单,我们必须每5秒最多发送一封电子邮件。 因此,我正在考虑创建一个@Singleton EJB电子邮件发件人,这样,只有一个EJB实例将负责在整个应用程序中发送所有电子邮件。 如何实现5秒计数器,以便每5秒最多发送1封电子邮件? 例如,班级看起来像这样

  @Singleton
  public class EmailSender {
       public void sendEmail(String msg){
                 ....
       }
  }

尝试使用@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
          }
     }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM