我现在有这样一个需求,帮用户代收和代发邮件,用户需要绑定邮箱账户在我的系统中。
代发邮件没有什么问题,主要是代收邮件的问题,我是用Javamail实现的。我不想用户手动去邮件服务器中获取邮件,收信的过程直接就在我的服务器中完成,用户只要登录我的服务器就能看到他的邮件。现在又如下问题:我应该采取怎样的策略去邮件服务器收取邮件,我是这样想的,通过一个任务调度器每隔半小时去邮件服务器上收取邮件,假设有10W用户绑定了邮箱账户,那我就启动10w的线程去收取邮件,收取下来的邮件直接存我的数据库。收取完成之后,再隔半小时继续收取,请问各位大牛,这样做性能好不,是10W用户哦,有没有可行性。或者各位有没有更好的方案。

解决方案 »

  1.   

    你每次10W个线程进行一次收邮件动作,然后那10W个线程就要做半小时的250?
    这利用率也太低了嘛
    1个线程负责多少个用户,然后启上 10W/负责数  个线程做他们各自的取邮件工作比如1个线程负责1000个用户,启动100个线程去轮询,尽量不要让线程空闲
    我是这么考虑的
      

  2.   

    感谢shaosijun2004给我带来了新的思路,这样比较可行,再加上消息队列,服务器做集群,应该没什么问题了