| | |
| | | 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; |
| | |
| | | |
| | | 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() { |
| | |
| | | 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); |