一種事件提醒業務處理方法
2023-07-17 00:06:36 1
專利名稱:一種事件提醒業務處理方法
技術領域:
本發明涉及事件設定時間監控和提醒的技術,具體涉及一種事件提醒業務處理 方法。
背景技術:
一些多用戶的服務系統中需要把某個用戶設定的事件提醒在規定時間點發送給 該用戶,如日程提醒業務。如圖1所示,這類服務業務的基本流程是,用戶生成事件, 然後系統掃描事件集數據,在達到某一事件觸發的時間點時將該事件的提醒通知發送給 指定用戶,最後刪除該事件。大多數服務系統將事件數據保存到資料庫裡,然後定時利 用sql語句查找並按時間排序,得到最新的事件,然後根據事件查找到需要通知的用戶, 最後將事件提醒通知發送出去。現在的事件提醒業務處理方法存在的問題是用戶體驗需 求和系統性能的衝突,要提高用戶體驗,就要在指定的時間點,將事件提醒通知發送給 指定的用戶,這樣就需要秒級資料庫查找頻率,也就是每秒鐘都要掃描資料庫數據表, 看是否達到事件要求的時間點。秒級的資料庫查找操作會導致資料庫性能急劇下降,因 為一般系統的資料庫並不是單一業務的,往往有多種業務邏輯的數據混合在一起,比如 有保存用戶登錄信息的數據。在用戶量和事件量數據巨大的情況下,由於資料庫操作的 隨機性,此時不但查詢用戶登錄信息時因為資料庫執行不了或執行得很慢,導致用戶登 錄驗證變慢,而且也不能保證事件查找的操作能在要求的時間內完成,也就是說資料庫 查找事件的方式無法滿足事件提醒的實時性要求。
發明內容
本發明要解決的技術問題是提供一種事件提醒業務處理方法,克服現有技術事 件提醒業務處理方法採用資料庫查找事件的方式,無法滿足事件提醒實時性要求的缺 陷。本發明為解決上述技術問題所採用的技術方案為一種事件提醒業務處理方法,包括步驟Al、將用戶設置的事件數據存儲到資料庫的數據表中,所述事件數據包括事件 發送時間戳;A2、將所述事件發送時間戳大於當前系統時間的所述事件數據緩存到內存的數 據結構中;A3、定時掃描所述數據結構,比較當前系統時間和所述事件發送時間戳;A4、如果當前系統時間大於或者等於所述事件 發送時間戳,則將所述事件數據 發送給所述用戶。所述的事件提醒業務處理方法,其中還包括步驟A5:對所述事件數據進行後續處理。所述的事件提醒業務處理方法,其中所述數據表和所述數據結構具有統一的數據格式,所述數據格式包括事件序號欄位、事件創建者欄位、事件發送時間戳欄位、事 件內容欄位、被提醒者欄位和發送狀態欄位。所述的事件提醒業務處理方法,其中所述事件發送時間戳設為整型數據。所述的事件提醒業務處理方法,其中在內存中設置主鍊表,所述主鍊表按時間 跨度設置節點,並由每個節點派生相應的子鍊表,由所述子鍊表的節點存儲所述數據結 構。所述的事件提醒業務處理方法,其中所述子鍊表按所述事件發送時間戳的時間 順序生成子鍊表節點。所述的事件提醒業務處理方法,其中對所述事件數據進行的後續處理包括修改 所述數據表,將所述發送狀態欄位標識為已發送。
所述的事件提醒業務處理方法,其中對所述事件數據進行的後續處理包括刪除 子鍊表節點,如果該子鍊表節點對應的子鍊表已刪除,則刪除對應的主鍊表節點。本發明的有益效果本發明事件提醒業務處理方法可以大幅度地提高事件數據 的查詢效率,滿足事件提醒的實時性要求,而不影響系統資料庫的性能。
本發明包括如下附圖圖1為現有技術事件提醒業務處理一般流程示意圖;圖2為本發明事件提醒業務處理方法流程圖;圖3為本發明事件提醒業務處理方法主鍊表和子鍊表結構示意圖;圖4為本發明遍歷鍊表流程圖;圖5為本發明對事件數據進行查詢和後續處理流程圖。
具體實施例方式下面根據附圖和實施例對本發明作進一步詳細說明事件數據的關鍵屬性用戶設置的事件包括下面幾個關鍵屬性事件發送時間一般標準格式為」 YYYY-MM-DD HH24:MM:SS",如 「2010-09-0108:00:00」。事件內容如日程提醒開會,消息公共等內容。接收事件的對象可以是單一用戶也可以是用戶集。事件設置者。根據事件數據的屬性特點,為提高查詢效率,新增一個屬性事件發送時間 戳,即將標準格式的時間轉換成整型數據,如「2010-09-0108:00:00」對應的時間戳就是 1283299200。由此,設計資料庫數據表的創建SQL腳本如下CREATETABLE、t—event—info、(iIDint(Il)NOTNULL,、CreateUser varchar (32) DEFAULT NULL
』 SendTime、datetime DEFAULT NULL,』Content、varchar (254) DEFAULT NULL,'ReceiverUser varchar (254) DEFAULT NULL,『 SendTmeStampMnt (11) NOT NULL,' Status'int (2) NOT NULL,PRIMARY KEY (、SendTmeStamp、))詳細說明如下ID欄位,僅作為事件的序號,隨事件數據遞增。CreateUser欄位,事件創建者。SendTime欄位,事件發送時間。Content欄位,要發送事件的內容。ReceiveUser欄位,接收事件的用戶。SendTimeStamp欄位,事件發送時間轉換的事件發送時間戳,整型數據。Status欄位,發送狀態,取值為0或1,0為未發送,1為已發送。這個數據表與系統的其他業務數據表一起創建在系統資料庫中。根據這個數據表的表結構,舉例說明,如小明需要通知小王在2010年9月1號 上午9點整到會議室開會,這個通知要在2010年9月1號上午8點整發送給小王。這樣 該事件保存到資料庫表t—event—info中的格式如表1所示表 權利要求
1. 一種事件提醒業務處理方法,其特徵在於,包括步驟Al、將用戶設置的事件數據存儲到資料庫的數據表中,所述事件數據包括事件發送 時間戳;A2、將所述事件發送時間戳大於當前系統時間的所述事件數據緩存到內存的數據結 構中;A3、定時掃描所述數據結構,比較當前系統時間和所述事件發送時間戳;A4、如果當前系統時間大於或者等於所述事件發送時間戳,則將所述事件數據發送 給所述用戶。
2.根據權利要求1所述的事件提醒業務處理方法,其特徵在於,還包括步驟A5:對 所述事件數據進行後續處理。
3.根據權利要求2所述的事件提醒業務處理方法,其特徵在於所述數據表和所述 數據結構具有統一的數據格式,所述數據格式包括事件序號欄位、事件創建者欄位、事 件發送時間戳欄位、事件內容欄位、被提醒者欄位和發送狀態欄位。
4.根據權利要求3所述的事件提醒業務處理方法,其特徵在於所述事件發送時間 戳設為整型數據。
5.根據權利要求4所述的事件提醒業務處理方法,其特徵在於在內存中設置主鏈 表,所述主鍊表按時間跨度設置節點,並由每個節點派生相應的子鍊表,由所述子鍊表 的節點存儲所述數據結構。
6.根據權利要求5所述的事件提醒業務處理方法,其特徵在於所述子鍊表按所述 事件發送時間戳的時間順序生成子鍊表節點。
7.根據權利要求2所述的事件提醒業務處理方法,其特徵在於對所述事件數據進 行的後續處理包括修改所述數據表,將所述發送狀態欄位標識為已發送。
8.根據權利要求7所述的事件提醒業務處理方法,其特徵在於對所述事件數據進 行的後續處理包括刪除子鍊表節點,如果該子鍊表節點對應的子鍊表已刪除,則刪除對 應的主鍊表節點。
全文摘要
本發明公開了一種事件提醒業務處理方法,包括步驟A1、將用戶設置的事件數據存儲到資料庫的數據表中,所述事件數據包括事件發送時間戳;A2、將所述事件發送時間戳大於當前系統時間的所述事件數據緩存到內存的數據結構中;A3、定時掃描所述數據結構,比較當前系統時間和所述事件發送時間戳;A4、如果當前系統時間大於或者等於所述事件發送時間戳,則將所述事件數據發送給所述用戶。本發明事件提醒業務處理方法可以大幅度地提高事件數據的查詢效率,滿足事件提醒的實時性要求,而不影響系統資料庫的性能。
文檔編號G06F17/30GK102012909SQ20101054827
公開日2011年4月13日 申請日期2010年11月17日 優先權日2010年11月17日
發明者張代軍, 謝堅 申請人:深圳市多贏軟體技術有限公司