我有一个应该像这样工作的应用程序:
- 与传输提供商建立连接。
- 尽快发送大量消息。
- 与运输提供商保持密切联系。
我发现我的应用程序对于传输线程来说移动得太快。我最终丢失了消息,因为在传输线程完成前一条消息之前我就继续处理下一条消息。为了(暂时)解决这个问题,我在一条消息的启动和下一条消息的创建之间设置了 2 秒的暂停。但这是 Not Acceptable !我想要的是某种信号量,我可以等待它来确定传输线程何时完全完成消息处理(即,我想要同步操作)。
有人知道这样的事情吗?
最佳答案
传输是同步的。
“丢失消息”是什么意思?你的意思是,即使传输说消息已经发送(无一异常(exception)),消息永远不会到达目的地?这可能表明您的邮件服务器中存在错误。
您可能想要尝试按照 JavaMail 常见问题解答中的描述打开 session 调试,以查看与邮件服务器的对话中是否有任何内容可以表明其未按预期工作的原因。
关于java - 如何与JavaMail中的Transport同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513701/