JavaMail IMAP空闲与轮询可靠性

JavaMail IMAP空闲与轮询可靠性,java,email,imap,Java,Email,Imap,我想编程一个处理传入电子邮件的服务器进程。为此,我有两个选择1。投票和2。使用IMAP空闲功能进行电子邮件推送。这两项都可以通过JavaMail完成。我倾向于使用IMAP IDLE实现整个系统,但我对可靠性有一些担心。由于它将作为服务器进程7x24运行,因此如果该服务只是停留、冻结或变得无响应,这将是致命的 最后一个问题是,IMAP IDLE功能能否安全地在服务器进程中实现,或者就可靠性和稳定性而言,轮询方法是更好的解决方案吗?IMAP IDLE不是全天候运行的,通常几乎所有的邮件程序都为IDL

我想编程一个处理传入电子邮件的服务器进程。为此,我有两个选择1。投票和2。使用IMAP空闲功能进行电子邮件推送。这两项都可以通过JavaMail完成。我倾向于使用IMAP IDLE实现整个系统,但我对可靠性有一些担心。由于它将作为服务器进程7x24运行,因此如果该服务只是停留、冻结或变得无响应,这将是致命的


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

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

轮询可能是一个很好的选择,但这可能会再次降低服务速度,因为每次都需要扫描用户的整个邮箱以查看任何邮件活动

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