[发明专利]一种以观察者模式发送大量邮件的方法在审

专利信息
申请号: 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中任一所述的一种以观察者模式发送大量邮件的方法,其特征在于:前台的数据收集模块由邮件发送请求的线程与队列对象构成;后台的发送模块由一个或者多个发送线程构成;线程通信模块由发送类的类对象担当观察者的角色,当发现有邮件需要发送时,唤醒工作线程,否则不唤醒。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浪潮电子信息产业股份有限公司,未经浪潮电子信息产业股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201410206265.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top