использование websokets для уведомлений по почте Java повлияет на производительность сервера?

#java #spring-boot #email #jakarta-mail #email-client

Вопрос:

Я создаю микросервис почтового клиента с помощью java mail. После этого мне нужно получить уведомление по электронной почте. Например: Если приходит новое электронное письмо, серверная часть должна отправить уведомление по электронной почте на внешний интерфейс.

для push-уведомления я использую push-уведомление firebase.

Он отлично работает, но мой вопрос в том, повлияет ли это на производительность системы. потому что, когда пользователь войдет в систему, интерфейс установит соединение с websocket. после этого интерфейс будет отправлять запрос websocket каждые 5 минут на серверную часть. после этого серверная часть подключается к веб-почте и получает количество новых писем. и серверная часть вернет новое количество сообщений электронной почты на интерфейс.

повлияет ли этот метод на производительность сервера, когда речь зайдет о 500 пользователях. Это функция для сбора количества сообщений электронной почты.

 public int notification(String email, String password) throws MessagingException {   InboxMail mail = inboxmaildao.findFirstByEmailOrderByTimestampDesc(email);  long lastTimestamp = mail.getTimestamp();  Store store = config.emailConfiguration(email, password);   int notification = 0;   SearchTerm olderThan = new ReceivedDateTerm(ComparisonTerm.LT, new Date(new Date().getTime()   nextDay));  SearchTerm newerThan = new ReceivedDateTerm(ComparisonTerm.GT, new Date(lastTimestamp - nextDay));  SearchTerm andTerm = new AndTerm(olderThan, newerThan);   Folder folder = store.getFolder("INBOX");  folder.open(Folder.READ_ONLY);  Message[] arrayMessages = folder.search(andTerm);    if (arrayMessages != null) {  for (Message message : arrayMessages) {  long timestamp = message.getReceivedDate().getTime();  if (lastTimestamp lt; timestamp) {  notification  ;  }  }  }  store.close();  return notification;  }  }  

И веб-карман

 @MessageMapping("/notification")  @SendTo("/email/notification")  public NotificationDto message(NotificationDto message) throws Exception {  Thread.sleep(1000); // simulated delay  int notification = notificationService.notification(message.getEmail(), message.getPassword());  System.out.println(notification);  return message;  }  

Также есть ли какой-либо другой способ собрать уведомление по электронной почте из веб-почты/gmail/outlook?

Комментарии:

1. Почему бы не попробовать короткий опрос для чего-то подобного? Я предполагаю, что несколько минут здесь и там не влияют на пользовательский интерфейс. Таким образом, вы сократите количество одновременных подключений, которые ваш сервер должен поддерживать