我有这个rails应用程序在我们的本地Intranet上运行,有一千个普通用户.我希望将它与我们的电子邮件服务器(MS Exchange)集成.基本上 -
1)对于每个用户,应用程序应从邮件服务器获取其收件箱中的任何新邮件,解析它并将其存储在数据库中.
我可以用ruby/net-imap实现它,但我担心性能.正如我所提到的,有一千个用户,每个用户都有不同的电子邮件地址.每隔x分钟轮询一次电子邮件服务器对于一千个用户来说可能会大大降低性能.
看起来IMAP IDLE与ruby/net-imap可能是一个选项,邮件服务器会在有新邮件(IPhone/Outlook样式)时向我的应用程序发送通知.但似乎,因为我必须保持与服务器的imap连接打开.因此,如果一次有100个用户登录,则意味着100个与邮件服务器的连接.这会大大减慢应用程序的速度吗?
或者有没有人知道任何其他选项(顺便说一下,我无法控制邮件服务器)
我们正在使用MRI,但也可以轻松切换到jruby.
有人可以向我解释IMAP IDLE的工作原理吗?它为每个打开的连接分配一个新进程吗?我可以以某种方式使用eventmachine吗?
我正在尝试用背景工作者在heroku上的ruby中实现它.有什么想法吗?