[發(fā)明專利]一種以觀察者模式發(fā)送大量郵件的方法在審
| 申請?zhí)枺?/td> | 201410206265.7 | 申請日: | 2014-05-16 |
| 公開(公告)號: | CN103973549A | 公開(公告)日: | 2014-08-06 |
| 發(fā)明(設(shè)計(jì))人: | 李新虎;于輝;劉俊朋;郭鋒;劉正偉 | 申請(專利權(quán))人: | 浪潮電子信息產(chǎn)業(yè)股份有限公司 |
| 主分類號: | H04L12/58 | 分類號: | H04L12/58;H04L29/08 |
| 代理公司: | 濟(jì)南信達(dá)專利事務(wù)所有限公司 37100 | 代理人: | 姜明 |
| 地址: | 250101 山東*** | 國省代碼: | 山東;37 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 觀察者 模式 發(fā)送 大量 郵件 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及云計(jì)算技術(shù)領(lǐng)域,具體的說是一種降低資源占用率、按序發(fā)送、以觀察者模式發(fā)送大量郵件的方法。
背景技術(shù)
云計(jì)算是計(jì)算機(jī)發(fā)展歷史的有一個里程碑的發(fā)展階段,在這一階段中,物理資源將大量以數(shù)據(jù)中心的形式出現(xiàn),由專業(yè)的數(shù)據(jù)中心企業(yè)從事物理資源的管理和規(guī)化。資源需求方,不再需要自己構(gòu)建大成本的數(shù)據(jù)中心,而是向?qū)I(yè)的數(shù)據(jù)中心租借計(jì)算資源。
物理資源的集中,帶來的是海量數(shù)據(jù)的應(yīng)用,也帶來了更為頻繁的交互。作為交互通用模式之一的的郵件通知和告警,首當(dāng)其沖。
在現(xiàn)有技術(shù)中,大量郵件發(fā)送過程都是單線程、隊(duì)列式同步發(fā)送,占用資源大,負(fù)載和耦合性高,發(fā)送效率不熬。采用觀察者模式發(fā)送郵件,可以使內(nèi)存、cpu等物理資源消耗降低。異步操作降低了用戶等待時間,提高用戶的體驗(yàn)。
為了提高發(fā)送效率,降低資源占用,現(xiàn)提供一種以觀察者模式發(fā)送大量郵件的方法。
發(fā)明內(nèi)容
本發(fā)明的技術(shù)任務(wù)是解決現(xiàn)有技術(shù)的不足,提供一種降低資源占用率、以觀察者模式發(fā)送大量郵件的方法。
本發(fā)明的技術(shù)方案是按以下方式實(shí)現(xiàn)的,該一種以觀察者模式發(fā)送大量郵件的方法,其實(shí)現(xiàn)過程為:
一、構(gòu)建郵件發(fā)送組件:
該組件包括線程同步的隊(duì)列對象、線程通信模塊、線程發(fā)送模塊、數(shù)據(jù)收集模塊,其中:
隊(duì)列對象用于存儲郵件信息。
線程通信模塊作為觀察者角色,監(jiān)控add郵件的動作,喚醒發(fā)送線程。
線程發(fā)送模塊負(fù)責(zé)調(diào)用郵件發(fā)送組件的通信程序,進(jìn)行發(fā)送。
數(shù)據(jù)收集模塊用于add郵件數(shù)據(jù)到郵件隊(duì)列對象中。
二、完成郵件發(fā)送:
1)郵件發(fā)送請求到達(dá)時,把郵件信息及時的存儲到內(nèi)存中,即隊(duì)列對象中,然后反饋成功信號給郵件發(fā)送者,完成請求的提交。
2)郵件信息在內(nèi)存中有序排列,并由線程發(fā)送模塊依序發(fā)送。
3)當(dāng)物理內(nèi)存中的有序的郵件全部發(fā)送完畢后,發(fā)現(xiàn)郵件隊(duì)列對象內(nèi)無郵件對象時,通知線程通信模塊,工作線程進(jìn)入休眠狀態(tài)。
4)當(dāng)有數(shù)據(jù)被提交時,線程被線程通信模塊喚醒,進(jìn)入工作狀態(tài)。
所述步驟1)中郵件存儲過程為:線程收集模塊把頁面的所有的郵件數(shù)據(jù)收集,傳輸給后臺;后臺通過線程間相互通信的方式,實(shí)現(xiàn)數(shù)據(jù)收集和數(shù)據(jù)發(fā)送過程中同步和智能喚醒。
進(jìn)一步的,該郵件存儲的詳細(xì)過程如下所述:先將各個線程中的郵件信息add到同一個Queue對象中,Queue是線程同步的。
然后由同步塊控制,同時,發(fā)送郵件的類對象控制通信鎖,形成發(fā)送線程和各請求線程間的通信。
所述步驟2)中郵件發(fā)送過程為:后臺接收到的數(shù)據(jù)由一個隊(duì)列的數(shù)據(jù)結(jié)構(gòu)對象承載,由于隊(duì)列先進(jìn)先出的特性,郵件被排列成一隊(duì),等待線程發(fā)送模塊的發(fā)送。
所述步驟3)、步驟4)的操作過程為:當(dāng)每條郵件添加后,都由線程通信模塊執(zhí)行喚醒線程的操作:后臺線程如果在工作,則繼續(xù)工作,如果在等待,則進(jìn)入工作狀態(tài)。
后臺線程被發(fā)現(xiàn)沒有郵件隊(duì)列時,再次進(jìn)入等待狀態(tài)。
進(jìn)一步的,所述步驟3)、步驟4)的詳細(xì)過程為:
當(dāng)請求線程add完成后,調(diào)用notify()方法,喚醒所有發(fā)送線程中的某一個,被喚醒的發(fā)送線程在得知有新的郵件需要發(fā)送后,進(jìn)入工作狀態(tài),當(dāng)郵件全部被發(fā)送完畢后,喚醒的線程又重新進(jìn)入休眠狀態(tài)。
大量郵件需要發(fā)送時,多個沉睡的線程被依次喚醒,進(jìn)入工作狀態(tài)完成上述步驟中的發(fā)送過程。
前臺的數(shù)據(jù)收集模塊由郵件發(fā)送請求的線程與隊(duì)列對象構(gòu)成;后臺的發(fā)送模塊由一個或者多個發(fā)送線程構(gòu)成;線程通信模塊由發(fā)送類的類對象擔(dān)當(dāng)觀察者的角色,當(dāng)發(fā)現(xiàn)有郵件需要發(fā)送時,喚醒工作線程,否則不喚醒。
本發(fā)明與現(xiàn)有技術(shù)相比所產(chǎn)生的有益效果是:
本發(fā)明的一種以觀察者模式發(fā)送大量郵件的方法通過郵件發(fā)送組件以觀察者模式發(fā)送大量郵件策略,實(shí)現(xiàn)大量郵件的發(fā)送,同時采用觀察者模式的程序設(shè)計(jì),能達(dá)到大量郵件即時存儲、有序發(fā)送、程序工作線程智能休眠的效果,降低郵件發(fā)送的負(fù)載度和耦合度,提高發(fā)送效率,同時節(jié)省內(nèi)存、cpu等物理資源的消耗,節(jié)能減排,實(shí)用性強(qiáng),易于推廣。
附圖說明
附圖1為本發(fā)明的實(shí)現(xiàn)示意圖。
具體實(shí)施方式
下面結(jié)合附圖對本發(fā)明的一種以觀察者模式發(fā)送大量郵件的方法作以下詳細(xì)說明。
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于浪潮電子信息產(chǎn)業(yè)股份有限公司,未經(jīng)浪潮電子信息產(chǎn)業(yè)股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410206265.7/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種排線校準(zhǔn)模裝置
- 下一篇:一種玻璃管切割機(jī)
- 發(fā)送方法、發(fā)送系統(tǒng)和發(fā)送器
- 發(fā)送系統(tǒng)、發(fā)送設(shè)備
- 發(fā)送設(shè)備、發(fā)送/接收設(shè)備、發(fā)送方法和發(fā)送/接收方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送裝置、發(fā)送方法
- 發(fā)送系統(tǒng)、發(fā)送裝置以及數(shù)據(jù)發(fā)送方法
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送裝置、發(fā)送方法以及記錄介質(zhì)
- 發(fā)送方法、發(fā)送裝置
- 發(fā)送系統(tǒng)、發(fā)送方法及發(fā)送/接收系統(tǒng)





