Как создать отказоустойчивое приложение для приложения Java, которое читает электронную почту с Gmail Server - PullRequest
0 голосов
/ 12 марта 2020

Я работаю над приложением Java, которое считывает электронную почту с сервера Gmail и сохраняет ее в базе данных для дальнейшей обработки.

Ниже приведены шаги, которые я делаю для получения писем.

  1. У меня есть один идентификатор электронной почты в виде 'testemail@gmail.com
  2. Использование java кода API электронной почты I прочитайте все электронные письма и сохраните их в БД, затем эти электронные письма go для оценки.
  3. Чтение кода электронной почты выполняется только на одном сервере

Я развернул эту кодовую базу на втором сервере, но оба сервера читают одни и те же электронные письма и хранят их в БД, из-за этого у меня есть дубликаты электронных писем в базе данных. Я хотел избежать этого сценария, и в то же время мне нужно переключиться на другой ресурс при чтении электронных писем, потому что, если один сервер выходит из строя, у меня есть второй сервер для чтения электронных писем с сервера Gmail.

1 Ответ

0 голосов
/ 12 марта 2020

На первом шаге вы должны установить sh механизм, который блокирует один сервер от доступа к GMail INBOX, в то время как другой читает электронную почту. Для этого вы можете использовать запись в таблице базы данных, файл в общей папке, Zookeeper и т. Д.

Протокол IMAP (и протокол POP3) не знает что-то вроде «блокировки записи», не даже блокировка на более высоких уровнях, поэтому никакой поддержки с этой стороны. Вы даже не можете получить информацию о том, сколько клиентов в настоящее время подключено к данному почтовому ящику (по крайней мере, не с протоколами IMAP или POP3, и я не знаю API Google, который бы сообщал вам это для учетной записи GMail).

Далее вы помечаете обработанные электронные письма как прочитанные в INBOX (и последующие попытки чтения будут игнорировать уже прочитанные электронные письма). Или вы переместите обработанные электронные письма в отдельную папку IMAP в почтовом ящике.

Если вы просто хотите переключиться на другой ресурс (другой сервер холодный), вам придется отсортировать его на сервере. уровень; это опять-таки не связано с доступом к почтовому ящику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...