我很难弄清楚如何构建我系统的最后一部分。目前我正在运行一个 Tomcat 服务器,它有一个响应客户端请求的 servlet。每个请求依次将处理消息添加到异步队列(我可能会通过 Spring 或更可能使用 Amazon SQS 使用 JMS)。
事件的顺序是这样的:
发送方:
1. 接受客户端请求
2. 将一些数据添加到与此请求相关的具有唯一 ID 的 DB 中
3. 将表示此请求的消息对象添加到消息队列
接收方:
1. 从队列中拉出一个新的消息对象
2. 打开对象并根据 msg 对象中包含的信息从网站中获取一些信息。
3. 发送电子邮件警报
4. 使用已为此请求完成操作的信息更新我的数据库行(相同的唯一 ID)。
我很难弄清楚如何正确处理接收方。一方面,我可能可以创建一个简单的 java 程序,我从命令行启动该程序,该程序选择队列中的每个项目并对其进行处理。那安全吗?让该程序作为 Tomcat 容器内的另一个线程运行是否更有意义?我不想连续执行此操作,这意味着接收端应该能够一次处理多个对象——使用多个线程。我希望它每天 24 小时一直在运行。
构建接收端有哪些选择?