[发明专利]一种以观察者模式发送大量邮件的方法在审
申请号: | 201410206265.7 | 申请日: | 2014-05-16 |
公开(公告)号: | CN103973549A | 公开(公告)日: | 2014-08-06 |
发明(设计)人: | 李新虎;于辉;刘俊朋;郭锋;刘正伟 | 申请(专利权)人: | 浪潮电子信息产业股份有限公司 |
主分类号: | H04L12/58 | 分类号: | H04L12/58;H04L29/08 |
代理公司: | 济南信达专利事务所有限公司 37100 | 代理人: | 姜明 |
地址: | 250101 山东*** | 国省代码: | 山东;37 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 观察者 模式 发送 大量 邮件 方法 | ||
技术领域
本发明涉及云计算技术领域,具体的说是一种降低资源占用率、按序发送、以观察者模式发送大量邮件的方法。
背景技术
云计算是计算机发展历史的有一个里程碑的发展阶段,在这一阶段中,物理资源将大量以数据中心的形式出现,由专业的数据中心企业从事物理资源的管理和规化。资源需求方,不再需要自己构建大成本的数据中心,而是向专业的数据中心租借计算资源。
物理资源的集中,带来的是海量数据的应用,也带来了更为频繁的交互。作为交互通用模式之一的的邮件通知和告警,首当其冲。
在现有技术中,大量邮件发送过程都是单线程、队列式同步发送,占用资源大,负载和耦合性高,发送效率不熬。采用观察者模式发送邮件,可以使内存、cpu等物理资源消耗降低。异步操作降低了用户等待时间,提高用户的体验。
为了提高发送效率,降低资源占用,现提供一种以观察者模式发送大量邮件的方法。
发明内容
本发明的技术任务是解决现有技术的不足,提供一种降低资源占用率、以观察者模式发送大量邮件的方法。
本发明的技术方案是按以下方式实现的,该一种以观察者模式发送大量邮件的方法,其实现过程为:
一、构建邮件发送组件:
该组件包括线程同步的队列对象、线程通信模块、线程发送模块、数据收集模块,其中:
队列对象用于存储邮件信息。
线程通信模块作为观察者角色,监控add邮件的动作,唤醒发送线程。
线程发送模块负责调用邮件发送组件的通信程序,进行发送。
数据收集模块用于add邮件数据到邮件队列对象中。
二、完成邮件发送:
1)邮件发送请求到达时,把邮件信息及时的存储到内存中,即队列对象中,然后反馈成功信号给邮件发送者,完成请求的提交。
2)邮件信息在内存中有序排列,并由线程发送模块依序发送。
3)当物理内存中的有序的邮件全部发送完毕后,发现邮件队列对象内无邮件对象时,通知线程通信模块,工作线程进入休眠状态。
4)当有数据被提交时,线程被线程通信模块唤醒,进入工作状态。
所述步骤1)中邮件存储过程为:线程收集模块把页面的所有的邮件数据收集,传输给后台;后台通过线程间相互通信的方式,实现数据收集和数据发送过程中同步和智能唤醒。
进一步的,该邮件存储的详细过程如下所述:先将各个线程中的邮件信息add到同一个Queue对象中,Queue是线程同步的。
然后由同步块控制,同时,发送邮件的类对象控制通信锁,形成发送线程和各请求线程间的通信。
所述步骤2)中邮件发送过程为:后台接收到的数据由一个队列的数据结构对象承载,由于队列先进先出的特性,邮件被排列成一队,等待线程发送模块的发送。
所述步骤3)、步骤4)的操作过程为:当每条邮件添加后,都由线程通信模块执行唤醒线程的操作:后台线程如果在工作,则继续工作,如果在等待,则进入工作状态。
后台线程被发现没有邮件队列时,再次进入等待状态。
进一步的,所述步骤3)、步骤4)的详细过程为:
当请求线程add完成后,调用notify()方法,唤醒所有发送线程中的某一个,被唤醒的发送线程在得知有新的邮件需要发送后,进入工作状态,当邮件全部被发送完毕后,唤醒的线程又重新进入休眠状态。
大量邮件需要发送时,多个沉睡的线程被依次唤醒,进入工作状态完成上述步骤中的发送过程。
前台的数据收集模块由邮件发送请求的线程与队列对象构成;后台的发送模块由一个或者多个发送线程构成;线程通信模块由发送类的类对象担当观察者的角色,当发现有邮件需要发送时,唤醒工作线程,否则不唤醒。
本发明与现有技术相比所产生的有益效果是:
本发明的一种以观察者模式发送大量邮件的方法通过邮件发送组件以观察者模式发送大量邮件策略,实现大量邮件的发送,同时采用观察者模式的程序设计,能达到大量邮件即时存储、有序发送、程序工作线程智能休眠的效果,降低邮件发送的负载度和耦合度,提高发送效率,同时节省内存、cpu等物理资源的消耗,节能减排,实用性强,易于推广。
附图说明
附图1为本发明的实现示意图。
具体实施方式
下面结合附图对本发明的一种以观察者模式发送大量邮件的方法作以下详细说明。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410206265.7/2.html,转载请声明来源钻瓜专利网。