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; public class EmailMessageQueue { private static final Logger logger = LoggerFactory.getLogger(EmailMessageQueue.class); // private static ConcurrentLinkedQueue WORKING_EVENTS = new ConcurrentLinkedQueue(); private static BlockingQueue WORKING_EVENTS = new LinkedBlockingQueue<>(); public static void add(EmailMessage item) { 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() { return WORKING_EVENTS.size(); } 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); } return item; } }