Я пишу программу на C #, которая отслеживает выделенную учетную запись Gmail с помощью POP3 для специальных командных сообщений и реагирует соответствующим образом.
Для максимальной надежности я буду запускать эту программу на нескольких компьютерах по всей стране.
В настоящее время у меня есть состояние гонки, при котором два экземпляра программы могут прочитать одно и то же сообщение, прежде чем один из них удалит его, в результате чего сообщение будет обработано дважды.
Как я могу убедиться, что каждая команда обрабатывается ровно один раз?
Доступ Gmail по протоколу POP3, используемый для обслуживания каждого сообщения только один раз (делая RETR и DELE одной атомарной операцией), но я больше не могу воспроизвести это поведение.
Единственный способ связи между компьютерами - это SQL Server и HTTP-сервер (которым я управляю).