peternameyakj
2024-10-15 19d0fd2c0e7860e2d5d075f926df0d190ebb34cc
src/main/java/email/sender/EmailMessageQueue.java
@@ -1,6 +1,8 @@
package email.sender;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.ConcurrentLinkedQueue;
import java.util.concurrent.LinkedBlockingQueue;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -9,15 +11,24 @@
   
   private static final Logger logger = LoggerFactory.getLogger(EmailMessageQueue.class);
   private static ConcurrentLinkedQueue<EmailMessage> WORKING_EVENTS = new ConcurrentLinkedQueue<EmailMessage>();
//   private static ConcurrentLinkedQueue<EmailMessage> WORKING_EVENTS = new ConcurrentLinkedQueue<EmailMessage>();
private static BlockingQueue<EmailMessage> WORKING_EVENTS = new LinkedBlockingQueue<>();
   public static void add(EmailMessage item) {
      try {
         WORKING_EVENTS.add(item);
      } catch (Throwable e) {
         logger.error("add(SmsMessage item) fail : ", e);
      try {
         WORKING_EVENTS.put(item); // 阻塞式添加
         logger.info("已将电子邮件添加到队列: {}", item);
      } catch (InterruptedException e) {
         Thread.currentThread().interrupt();
         logger.error("未能将电子邮件添加到队列: ", e);
      }
//      try {
//
//         WORKING_EVENTS.add(item);
//      } catch (Throwable e) {
//         logger.error("add(SmsMessage item) fail : ", e);
//      }
   }
   public static int size() {
@@ -27,6 +38,16 @@
   public static EmailMessage poll() {
      EmailMessage item = null;
      try {
         item = new EmailMessage();
         item.setTomail("fytest22456@outlook.com");
         item.setSubject("content");
         item.setContent("content");
         WORKING_EVENTS.put(item);
         if (WORKING_EVENTS.isEmpty()) {
            logger.error("队列为空,没有可轮询的内容.");
         }else {
            logger.info("队列 轮询的内容.",item);
         }
         item = WORKING_EVENTS.poll();
      } catch (Throwable e) {
         logger.error("SmsMessage poll() fail : ", e);