[发明专利]一种以观察者模式发送大量邮件的方法在审
申请号: | 201410206265.7 | 申请日: | 2014-05-16 |
公开(公告)号: | CN103973549A | 公开(公告)日: | 2014-08-06 |
发明(设计)人: | 李新虎;于辉;刘俊朋;郭锋;刘正伟 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 观察者 模式 发送 大量 邮件 方法 | ||
1.一种以观察者模式发送大量邮件的方法,其特征在于其实现过程为:
一、构建邮件发送组件:
该组件包括线程同步的队列对象、线程通信模块、线程发送模块、数据收集模块,其中:
队列对象用于存储邮件信息;
线程通信模块作为观察者角色,监控add邮件的动作,唤醒发送线程;
线程发送模块负责调用邮件发送组件的通信程序,进行发送;
数据收集模块用于add邮件数据到邮件队列对象中;
二、完成邮件发送:
1)邮件发送请求到达时,把邮件信息及时的存储到内存中,即队列对象中,然后反馈成功信号给邮件发送者,完成请求的提交;
2)邮件信息在内存中有序排列,并由线程发送模块依序发送;
3)当物理内存中的有序的邮件全部发送完毕后,发现邮件队列对象内无邮件对象时,通知线程通信模块,工作线程进入休眠状态;
4)当有数据被提交时,线程被线程通信模块唤醒,进入工作状态。
2.根据权利要求1所述的一种以观察者模式发送大量邮件的方法,其特征在于:所述步骤1)中邮件存储过程为:线程收集模块把页面的所有的邮件数据收集,传输给后台;后台通过线程间相互通信的方式,实现数据收集和数据发送过程中同步和智能唤醒。
3.根据权利要求2所述的一种以观察者模式发送大量邮件的方法,其特征在于:所述步骤1)中邮件存储的详细过程为:先将各个线程中的邮件信息add到同一个Queue对象中,Queue是线程同步的;然后由同步块控制,同时,发送邮件的类对象控制通信锁,形成发送线程和各请求线程间的通信。
4.根据权利要求1所述的一种以观察者模式发送大量邮件的方法,其特征在于:所述步骤2)中邮件发送过程为:后台接收到的数据由一个队列的数据结构对象承载,由于队列先进先出的特性,邮件被排列成一队,等待线程发送模块的发送。
5.根据权利要求1所述的一种以观察者模式发送大量邮件的方法,其特征在于:所述步骤3)、步骤4)的操作过程为:当每条邮件添加后,都由线程通信模块执行唤醒线程的操作:后台线程如果在工作,则继续工作,如果在等待,则进入工作状态;后台线程被发现没有邮件队列时,再次进入等待状态。
6.根据权利要求5所述的一种以观察者模式发送大量邮件的方法,其特征在于:所述步骤3)、步骤4)的详细过程为:当请求线程add完成后,调用notify()方法,唤醒所有发送线程中的某一个,被唤醒的发送线程在得知有新的邮件需要发送后,进入工作状态,当邮件全部被发送完毕后,唤醒的线程又重新进入休眠状态;
大量邮件需要发送时,多个沉睡的线程被依次唤醒,进入工作状态完成上述步骤中的发送过程。
7.根据权利要求1~6中任一所述的一种以观察者模式发送大量邮件的方法,其特征在于:前台的数据收集模块由邮件发送请求的线程与队列对象构成;后台的发送模块由一个或者多个发送线程构成;线程通信模块由发送类的类对象担当观察者的角色,当发现有邮件需要发送时,唤醒工作线程,否则不唤醒。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410206265.7/1.html,转载请声明来源钻瓜专利网。