我有一个带有JPA / hibernate后端的多线程应用程序(在servlet容器中运行)。此应用程序允许通过简单的URL检索文档。在第一次下载文档时(即接收到对特定URL的请求),应用程序应通过电子邮件发送通知消息,并在数据库中将文档标记为已检索。
确保每个文档只发送一封电子邮件的正确方法是什么?由于可能会多次单击检索文档的链接,因此可能存在并行事务(在不同的线程中)。这些交易只有在提交时才会看到各自的结果。
答案 0 :(得分:1)
由于发送电子邮件不是交易性的,我认为有两种可能性:
或者你只是不在乎,并假设并发的首次下载将是非常特殊的。因此,您可能会收到两封电子邮件而不是一封非常特别的电子邮件,在这种情况下您只需删除多余的电子邮件。