【发布时间】:2009-05-27 00:51:23
【问题描述】:
我正在编写一个 C# 程序,该程序使用 POP3 监控专用 Gmail 帐户以接收专门的命令电子邮件并做出适当的反应。
为了获得最大的可靠性,我将在全国多台计算机上运行该程序。 我目前有一个竞争条件,程序的两个实例可以在其中一个删除相同的消息之前读取它,导致消息被处理两次。
如何确保每个命令只处理一次?
Gmail 的 POP3 访问过去只为每条消息提供一次(使 RETR 和 DELE 成为单个原子操作),但我无法再重现这种行为。
计算机之间唯一的通信方法是 SQL Server 和 HTTP 服务器(由我控制)。
【问题讨论】:
标签: c# email synchronization gmail pop3