java - 如何与JavaMail中的Transport同步?

标签 java asynchronous jakarta-mail

我有一个应该像这样工作的应用程序:

  1. 与传输提供商建立连接。
  2. 尽快发送大量消息。
  3. 与运输提供商保持密切联系。

我发现我的应用程序对于传输线程来说移动得太快。我最终丢失了消息,因为在传输线程完成前一条消息之前我就继续处理下一条消息。为了(暂时)解决这个问题,我在一条消息的启动和下一条消息的创建之间设置了 2 秒的暂停。但这是 Not Acceptable !我想要的是某种信号量,我可以等待它来确定传输线程何时完全完成消息处理(即,我想要同步操作)。

有人知道这样的事情吗?

最佳答案

传输是同步的。

“丢失消息”是什么意思?你的意思是,即使传输说消息已经发送(无一异常(exception)),消息永远不会到达目的地?这可能表明您的邮件服务器中存在错误。

您可能想要尝试按照 JavaMail 常见问题解答中的描述打开 session 调试,以查看与邮件服务器的对话中是否有任何内容可以表明其未按预期工作的原因。

关于java - 如何与JavaMail中的Transport同步?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12513701/

相关文章:

IMAP - javax.mail。 - 只获取没有附件的 body

JavaMail Yandex 发件人

java - 在 Eclipse 项目中使用 MapStruct 将 "dirty"字符串字段映射为 double

c# - 如果使用计时器控件,是否需要使用异步任务?

java - 有什么方法可以将任何数字表示为 4 个平方和?

scala - Play 2.0 Framework (scala) 中的异步结果

c# - 为通用应用程序读取/写入异步文件

java - 在我的 servlet 中调用 Store.connect 挂起

java - 从一行字符串中删除一个整数。然后,将 int 放入变量

javascript - Blob 图像从数据库到 Java 以及从 Java 到 Javascript 图像