[發明專利]一種以觀察者模式發送大量郵件的方法在審
| 申請號: | 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.szxzyx.cn/pat/books/201410206265.7/1.html,轉載請聲明來源鉆瓜專利網。





