【问题标题】:JavaMail IMAP IDLE vs polling reliabilityJavaMail IMAP IDLE 与轮询可靠性
【发布时间】:2013-01-12 23:57:36
【问题描述】:

我想编写一个处理传入电子邮件的服务器进程。为此,我看到两个选项 1. 轮询和 2. 使用 IMAP IDLE 功能的电子邮件推送。两者都可以使用 JavaMail 完成。我倾向于使用 IMAP IDLE 来实现整体,但我对可靠性有些担忧。由于它将作为服务器进程 7x24 运行,因此如果服务只是保持、冻结或无响应,这将是致命的。

所以最后的问题是,IMAP IDLE 特性是否可以安全地在服务器进程中实现,或者就可靠性和稳定性而言,轮询方法是更好的解决方案吗?

【问题讨论】:

    标签: java email imap


    【解决方案1】:

    IMAP Idle 不运行 24x7,通常几乎所有的邮件都为 IDLE 定义了一个超时,比如 30 分钟如果服务器没有这样做,那么它可能是一个很大的瓶颈,因为像 imap/ 这样的设备ipad 和其他一些客户端同时实例化多个实例,并且可能会或可能不会关闭连接,如果没有空闲超时,那么服务器将堆积如此多的未终止和无用的连接,有效地阻塞整个系统。

    轮询可能是一个不错的选择,但这可能会再次减慢服务速度,因为每次都需要扫描用户的整个邮箱以查找任何邮件活动。

    我建议使用 IDLE,因为它以最少的资源运行(在服务器上)并且对任何更新都有效,并且不要忘记在 30 分钟之前断开与客户端的连接(超时值,听说过不同的问题)

    【讨论】:

      猜你喜欢
      • 2014-04-22
      • 1970-01-01
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-29
      • 2011-01-21
      • 2012-07-06
      相关资源
      最近更新 更多