我需要向正确的方向一点推动。这是我的问题:我必须创建一个超可靠的服务,向其地址存储在 FTP 服务器上的 txt 文件中的客户端发送电子邮件。单个 txt 文件可能包含无限数量的条目。大多数情况下,该文件包含大约 300,000 个条目。
服务只用两个简单的方法公开接口:
TaskHandle sendEmails(String ftpFilePath);
ProcessStatus checkProcessStatus(TaskHandle taskHandle);
方法 sendEmails() 返回 TaskHandle,我们可以通过它请求 ProcessStatus。
对于这样的服务来说,可靠的集群是必要的。处理单个 txt 文件可能需要很长时间。重启集群中的一个节点应该不会影响发送电子邮件。
我们使用 JBoss AS 4.2.0,它带有一个很好的 HASingletonController,可确保一个服务实例在给定时间运行。
但是一旦发生故障转移,第二个服务应该从第一个停止的地方继续工作。
我如何才能在集群中的节点之间共享状态,这样就不可能发送两次电子邮件?