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<EmailMessage> WORKING_EVENTS = new ConcurrentLinkedQueue<EmailMessage>();
|
private static BlockingQueue<EmailMessage> 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;
|
}
|
}
|