From 19d0fd2c0e7860e2d5d075f926df0d190ebb34cc Mon Sep 17 00:00:00 2001
From: peternameyakj <908253177@qq.com>
Date: Tue, 15 Oct 2024 10:40:15 +0800
Subject: [PATCH] 邮箱

---
 src/main/java/email/sender/EmailMessageQueue.java |   31 ++++++++++++++++++++++++++-----
 1 files changed, 26 insertions(+), 5 deletions(-)

diff --git a/src/main/java/email/sender/EmailMessageQueue.java b/src/main/java/email/sender/EmailMessageQueue.java
index 3b8ce86..6ab5d47 100644
--- a/src/main/java/email/sender/EmailMessageQueue.java
+++ b/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);

--
Gitblit v1.9.3