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

Java @Singleton EJB executing method at most every 5 seconds

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

  @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
          }
     }
}