專利名稱:事件提醒方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及互聯(lián)網(wǎng)技術(shù),尤其涉及一種事件提醒方法和系統(tǒng)。
背景技術(shù):
隨著互聯(lián)網(wǎng)技術(shù)的發(fā)展,很多互聯(lián)網(wǎng)應(yīng)用都提供了提醒服務(wù),用戶可以設(shè)置提醒事件和觸發(fā)時間,當(dāng)?shù)竭_(dá)觸發(fā)時間則將提醒事件推送給用戶。傳統(tǒng)的事件提醒方法通常是將用戶提交的提醒事件和觸發(fā)時間分開存儲在服務(wù)器,即設(shè)置提醒事件表和提醒信息表,在提醒事件表中存儲事件標(biāo)識和觸發(fā)時間,在提醒信息表中存儲事件標(biāo)識和事件的具體內(nèi)容,并在提醒事件表中將不同的事件按觸發(fā)時間進(jìn)行排序。傳統(tǒng)的事件提醒方法通常采用定時輪詢的方式實(shí)現(xiàn)提醒服務(wù),服務(wù)器需按照一定的時間間隔對數(shù)據(jù)庫表進(jìn)行查詢,先從提醒事件表中獲取最近的一條或多條記錄,然后根據(jù)提醒事件表中的事件標(biāo)識從提醒信息表中查找對應(yīng)的事件的具體內(nèi)容,從提醒信息表中取出查找到的一條或多條提醒事件并推送給用戶。然而,傳統(tǒng)的這種事件提醒方法,由于必須按照一定的時間間隔去查詢,如果間隔時間太短,則服務(wù)器大量的操作都在判斷事件是否超時,服務(wù)器的資源浪費(fèi)較高;如果間隔時間太長,又不能保證事件提醒的精確度,可能造成事件提醒的延遲較大。
發(fā)明內(nèi)容
基于此,有必要提供一種能提高事件提醒的精確度而不會增加服務(wù)器資源浪費(fèi)的事件提醒方法。一種事件提醒方法,包括以下步驟:獲取當(dāng)前時間,在與當(dāng)前時間所屬的時間區(qū)間對應(yīng)的所述數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件,將查找到的提醒事件加入消息隊(duì)列中;從消息隊(duì)列中提取提醒事件并推送給用戶;其中,所述數(shù)據(jù)表為預(yù)先設(shè)置的與時間切片后的一個時間區(qū)間對應(yīng)的數(shù)據(jù)表,所述數(shù)據(jù)表中存儲了觸發(fā)時間在所述時間區(qū)間內(nèi)的提醒事件。此外,還有必要提供一種能提高事件提醒的精確度而不會增加服務(wù)器資源浪費(fèi)的事件提醒系統(tǒng)。一種事件提醒系統(tǒng),包括:;邏輯處理服務(wù)器,用于獲取當(dāng)前時間,在與當(dāng)前所述的時間區(qū)間對應(yīng)的數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件,將查找到的提醒事件加入消息隊(duì)列中;推送服務(wù)器,用于從消息隊(duì)列中提取提醒事件并推送給用戶;其中,所述數(shù)據(jù)表為預(yù)先設(shè)置的與時間切片后的一個時間區(qū)間對應(yīng)的數(shù)據(jù)表,所述數(shù)據(jù)表中存儲了觸發(fā)時間在所述時間區(qū)間內(nèi)的提醒事件。上述事件提醒方法和系統(tǒng),由于數(shù)據(jù)表為預(yù)先設(shè)置的與時間切片后的一個時間區(qū)間對應(yīng)的數(shù)據(jù)表,通過將提醒事件存儲在與觸發(fā)時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表中,在查找以當(dāng)前時間為觸發(fā)時間的提醒事件時,則可直接在與當(dāng)前時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表中進(jìn)行查找。由于本發(fā)明基于當(dāng)前時間觸發(fā)查找,因此能提高事件提醒的精確度。且由于數(shù)據(jù)表根據(jù)時間區(qū)間進(jìn)行了細(xì)分,數(shù)據(jù)表中僅存儲一個時間區(qū)間內(nèi)的提醒事件,查找時僅在對應(yīng)時間區(qū)間的一個數(shù)據(jù)表中進(jìn)行查找即可,因此不會增加服務(wù)器的資源浪費(fèi)。
圖1為一個實(shí)施例中事件提醒方法的流程示意圖;圖2為一個實(shí)施例中將查找到的提醒事件加入消息隊(duì)列的流程示意圖;圖3為一個實(shí)施例中事件 提醒系統(tǒng)的示意圖;圖4為一個實(shí)施例中邏輯處理服務(wù)器的示意圖;圖5為另一個實(shí)施例中邏輯處理服務(wù)器的示意圖。
具體實(shí)施方式如圖1所示,在一個實(shí)施例中,一種事件提醒方法,包括以下步驟:步驟S102,獲取當(dāng)前時間,在與當(dāng)前時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件,將查找到的提醒事件加入消息隊(duì)列中。本實(shí)施例中,數(shù)據(jù)表為預(yù)先設(shè)置的與時間切片后的一個時間區(qū)間對應(yīng)的數(shù)據(jù)表,該數(shù)據(jù)表中存儲了觸發(fā)時間在時間區(qū)間內(nèi)的提醒事件。在一個實(shí)施例中,可獲取用戶提交的提醒事件和觸發(fā)時間,然后將提醒事件存儲在與觸發(fā)時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表中。具體的,用戶可通過Web頁面或客戶端提供的用戶界面提交提醒事件和觸發(fā)時間。提醒事件可包括事件名稱和事件內(nèi)容等,數(shù)據(jù)庫可通過數(shù)據(jù)接口獲取到用戶提交的提醒事件和觸發(fā)時間。例如用戶提交的事件名稱為“工作提醒”,事件內(nèi)容為“統(tǒng)計(jì)財(cái)務(wù)報(bào)表”。觸發(fā)時間可精確到分、秒,例如觸發(fā)時間為9點(diǎn)15分或9點(diǎn)15分20秒等。具體的,在數(shù)據(jù)庫中預(yù)先創(chuàng)建數(shù)據(jù)表,每個數(shù)據(jù)表對應(yīng)一個時間區(qū)間,該時間區(qū)間是對時間切片后得到的。優(yōu)選的,可以每天的24小時進(jìn)行時間切片,以粒度T= 10分鐘切分每天的24小時,則數(shù)據(jù)庫中設(shè)有144個數(shù)據(jù)表(可命名為tb_0000 tb_2350),每個數(shù)據(jù)表用于存儲10分鐘內(nèi)的提醒事件。例如,設(shè)置表名為tb_0000的數(shù)據(jù)表負(fù)責(zé)存儲時間區(qū)間為00:00 00:09的提醒事件,在這個時間區(qū)間內(nèi)觸發(fā)的提醒事件都會存儲在該數(shù)據(jù)表中。由于時間切片的粒度越小,需要的數(shù)據(jù)表也越多,具體可根據(jù)業(yè)務(wù)需求量確定時間區(qū)間的長度。例如,也可設(shè)置每個數(shù)據(jù)表負(fù)責(zé)存儲5分鐘、20分鐘或30分鐘內(nèi)的提醒事件。此外,在數(shù)據(jù)庫中還設(shè)有索引表,用于存儲數(shù)據(jù)表與時間區(qū)間的對應(yīng)關(guān)系,例如數(shù)據(jù)表表名為tb_0000對應(yīng)時間區(qū)間為00:00 00:09。在一個實(shí)施例中,數(shù)據(jù)庫可為MySQL ( 一種關(guān)聯(lián)數(shù)據(jù)庫管理系統(tǒng))數(shù)據(jù)庫,在查找時,則可通過SQL (結(jié)構(gòu)化查詢語言)查找提醒事件,因此能夠增加查找速度以及查找的靈活性。優(yōu)選的,可根據(jù)觸發(fā)時間的精確度在每個時間點(diǎn)查找一次以當(dāng)前時間為觸發(fā)時間的提醒事件。例如,若觸發(fā)時間可精確到秒,則每秒執(zhí)行一次步驟S30。具體的,可獲取當(dāng)前時間的時間點(diǎn),確定當(dāng)前時間的時間點(diǎn)所屬的時間區(qū)間,然后獲取該時間區(qū)間對應(yīng)的數(shù)據(jù)表,在該數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件。例如,當(dāng)前時間為OO: 01:20,獲取到該時間點(diǎn)所屬的時間區(qū)間為00:00 00:09,則對應(yīng)的數(shù)據(jù)表為表tb_0000,在表tb_0000中進(jìn)行查找。步驟S104,從消息隊(duì)列中提取提醒事件并推送給用戶。進(jìn)一步的,在數(shù)據(jù)庫中還可記錄用戶標(biāo)識和用戶提交的提醒事件的對應(yīng)關(guān)系,則在推送時,根據(jù)該對應(yīng)關(guān)系將提醒事件推送給對應(yīng)的用戶。由于查找到的提醒事件按加入的順序排列在消息隊(duì)列中,在推送給用戶時,可直接從消息隊(duì)列中取出位于隊(duì)列頭部的提醒事件。進(jìn)一步的,可將取出的提醒事件通過郵件、短信或消息的方式發(fā)送到Web頁面或客戶端,并通過Web頁面或客戶端的用戶界面進(jìn)行展
/Jn ο在一個實(shí)施例中,數(shù)據(jù)表中的字段包括提醒事件信息字段、觸發(fā)時間字段和循環(huán)類型標(biāo)識字段。其中,提醒事件信息字段負(fù)責(zé)存儲提醒事件信息,包括事件ID、事件名稱、事件內(nèi)容、更新時間等;其中,事件ID用于唯一標(biāo)識一個提醒事件;事件名稱和事件內(nèi)容為提醒事件的具體內(nèi)容;更新時間為提醒事件最近更新的時間。觸發(fā)時間字段負(fù)責(zé)存儲提醒事件對應(yīng)的觸發(fā)時間。進(jìn)一步的,在一個實(shí)施例中,循環(huán)類型標(biāo)識字段負(fù)責(zé)存儲用戶設(shè)置的循環(huán)類型,可包括單次觸發(fā)標(biāo)識字段和/或多次觸發(fā)標(biāo)識字段。其中,單次觸發(fā)是指事件只提醒一次,多次觸發(fā)是指事件需循環(huán)提醒。在一個實(shí)施例中,如圖2所示,將查找到的提醒事件加入消息隊(duì)列中的具體過程包括:
步驟S202,獲取查找到的提醒事件對應(yīng)的循環(huán)類型標(biāo)識。步驟S204,根據(jù)查找到的提醒事件對應(yīng)的循環(huán)類型標(biāo)識判斷提醒事件的循環(huán)類型,若循環(huán)類型為單次觸發(fā),則進(jìn)入步驟S206,若循環(huán)類型為多次觸發(fā),則進(jìn)入步驟S208。步驟S206,將查找到的提醒事件加入消息隊(duì)列中,并刪除數(shù)據(jù)表中該查找到的提醒事件的記錄。由于單次觸發(fā)的提醒事件僅需提醒一次即可,因此加入消息隊(duì)列中后就可將對應(yīng)數(shù)據(jù)表中的該條記錄刪除,以節(jié)省數(shù)據(jù)庫的存儲空間。步驟S208,根據(jù)多次觸發(fā)標(biāo)識將查找到的提醒事件加入消息隊(duì)列中。 在一個實(shí)施例中,多次觸發(fā)標(biāo)識字段包括日循環(huán)標(biāo)識字段、周循環(huán)標(biāo)識字段、月循環(huán)標(biāo)識字段和年循環(huán)標(biāo)識字段中的至少一種。進(jìn)一步的,在一個實(shí)施例中,數(shù)據(jù)表中的字段還包括最近觸發(fā)時間字段,負(fù)責(zé)存儲提醒事件上一次被觸發(fā)的時間。本實(shí)施例中,數(shù)據(jù)表中的字段可如表I所示:表權(quán)利要求
1.一種事件提醒方法,包括以下步驟: 獲取當(dāng)前時間,在與當(dāng)前時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件,將查找到的提醒事件加入消息隊(duì)列中; 從消息隊(duì)列中提取提醒事件并推送給用戶; 其中,所述數(shù)據(jù)表為預(yù)先設(shè)置的與時間切片后的一個時間區(qū)間對應(yīng)的數(shù)據(jù)表,所述數(shù)據(jù)表中存儲了觸發(fā)時間在所述時間區(qū)間內(nèi)的提醒事件。
2.根據(jù)權(quán)利要求1所述的事件提醒方法,其特征在于,所述數(shù)據(jù)表中的字段包括提醒事件信息字段、觸發(fā)時間字段和循環(huán)類型標(biāo)識字段。
3.根據(jù)權(quán)利要求1所述的事件提醒方法,其特征在于,所述循環(huán)類型標(biāo)識字段包括單次觸發(fā)標(biāo)識字段和/或多次觸發(fā)標(biāo)識字段;所述將查找到的提醒事件加入消息隊(duì)列中的步驟包括: 獲取所述查找到的提醒事件對應(yīng)的循環(huán)類型標(biāo)識; 根據(jù)所述查找到的提醒事件對應(yīng)的循環(huán)類型標(biāo)識判斷提醒事件的循環(huán)類型,若所述循環(huán)類型為多次觸發(fā),則根據(jù)多次觸發(fā)標(biāo)識將所述查找到的提醒事件加入消息隊(duì)列中。
4.根據(jù)權(quán)利要求3所述的事件提醒方法,其特征在于,所述數(shù)據(jù)表中的字段還包括最近觸發(fā)時間字段;所述根據(jù)多次觸發(fā)標(biāo)識將所述查找到的提醒事件循環(huán)加入消息隊(duì)列中的步驟包括: 根據(jù)所述多次觸發(fā)標(biāo)識判斷提醒事件的多次觸發(fā)類型; 若所述多次觸發(fā)類型為日循環(huán),則將查找到的提醒事件加入消息隊(duì)列中; 若所述多次觸發(fā)類型為周循環(huán),則根據(jù)周循環(huán)標(biāo)識將查找到的提醒事件加入消息隊(duì)列中; 若所述多次觸發(fā)類型為月循環(huán),則在當(dāng)前時間與最近觸發(fā)時間相差一個月時,將查找到的提醒事件加入消息隊(duì)列中; 若所述多次觸發(fā)類型為年循環(huán),則在當(dāng)前時間與最近觸發(fā)時間相差一年時,將查找到的提醒事件加入消息隊(duì)列中。
5.根據(jù)權(quán)利要求3所述的事件提醒方法,其特征在于,所述將查找到的提醒事件推送給用戶的步驟還包括: 若所述循環(huán)類型為單次觸發(fā),則將查找到的提醒事件加入消息隊(duì)列中,并刪除所述數(shù)據(jù)表中所述查找到的提醒事件的記錄。
6.根據(jù)權(quán)利要求3所述的事件提醒方法,其特征在于,所述數(shù)據(jù)表包括單次觸發(fā)類型數(shù)據(jù)表和多次觸發(fā)類型數(shù)據(jù)表;所述將提醒事件存儲在與所述觸發(fā)時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表中的步驟包括: 若用戶提交的提醒事件的循環(huán)類型為單次觸發(fā),則將所述提醒事件存儲在與所述觸發(fā)時間所屬的時間區(qū)間對應(yīng)的單次觸發(fā)類型數(shù)據(jù)表中; 若用戶提交的提醒事件的循環(huán)類型為多次觸發(fā),則將所述提醒事件存儲在與所述觸發(fā)時間所屬的時間區(qū)間對應(yīng)的多次觸發(fā)類型數(shù)據(jù)表中。
7.根據(jù)權(quán)利要求1所述的事件提醒方法,其特征在于,所述方法還包括: 若獲取的同一觸發(fā)時間對應(yīng)的提醒事件的數(shù)量超過閾值,則按照預(yù)設(shè)長度分割與所述同一觸發(fā)時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表。
8.一種事件提醒系統(tǒng),其特征在于,包括: 邏輯處理服務(wù)器,用于獲取當(dāng)前時間,在與當(dāng)前所述的時間區(qū)間對應(yīng)的數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件,將查找到的提醒事件加入消息隊(duì)列中; 推送服務(wù)器,用于從消息隊(duì)列中提取提醒事件并推送給用戶; 其中,所述數(shù)據(jù)表為預(yù)先設(shè)置的與時間切片后的一個時間區(qū)間對應(yīng)的數(shù)據(jù)表,所述數(shù)據(jù)表中存儲了觸發(fā)時間在所述時間區(qū)間內(nèi)的提醒事件。
9.根據(jù)權(quán)利要求8所述的事件提醒系統(tǒng),其特征在于,所述數(shù)據(jù)表中的字段包括提醒事件信息字段、觸發(fā)時間字段和循環(huán)類型標(biāo)識字段。
10.根據(jù)權(quán)利要求9所述的事件提醒系統(tǒng),其特征在于,所述循環(huán)類型標(biāo)識字段包括單次觸發(fā)標(biāo)識字段和/或多次觸發(fā)標(biāo)識字段;邏輯處理服務(wù)器包括: 查找模塊,用于在與當(dāng)前所述的時間區(qū)間對應(yīng)的數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件; 循環(huán)類型標(biāo)識獲取模塊,用于獲取查找到的提醒事件對應(yīng)的循環(huán)類型標(biāo)識; 第一循環(huán)類型判斷模塊,用于根據(jù)所述查找到的提醒事件對應(yīng)的循環(huán)類型標(biāo)識判斷提醒事件的循環(huán)類型; 消息隊(duì)列管理模塊,用于當(dāng)循環(huán)類型為多次觸發(fā)時,則根據(jù)多次觸發(fā)標(biāo)識將所述查找到的提醒事件加入消息隊(duì)列中。
11.根據(jù)權(quán)利要求10所述的事件提醒系統(tǒng),其特征在于,所述數(shù)據(jù)表中的字段還包括最近觸發(fā)時間字段;所述邏輯處理服務(wù)器還包括: 第二循環(huán)類型判斷模塊,用于根據(jù)所述多次觸發(fā)標(biāo)識判斷提醒事件的多次觸發(fā)類型; 所述消息隊(duì)列管理模塊還用于當(dāng)所述多次觸發(fā)類型為日循環(huán)時,則將查找到的提醒事件加入消息隊(duì)列中;當(dāng)所述多次觸發(fā)類型為周循環(huán)時,則根據(jù)周循環(huán)標(biāo)識將查找到的提醒事件加入消息隊(duì)列中;當(dāng)所述多次觸發(fā)類型為月循環(huán)時,則在當(dāng)前時間與最近觸發(fā)時間相差一個月時將查找到的提醒事件加入消息隊(duì)列中;以及當(dāng)所述多次觸發(fā)類型為年循環(huán)時,貝IJ在當(dāng)前時間與最近觸發(fā)時間相差一年時,將查找到的提醒事件加入消息隊(duì)列中。
12.根據(jù)權(quán)利要求9所述的事件提醒系統(tǒng),其特征在于,所述消息隊(duì)列管理模塊還用于當(dāng)所述循環(huán)類型為單次觸發(fā),則將查找到的提醒事件加入消息隊(duì)列中; 所述邏輯處理服務(wù)器還包括:刪除模塊,用于當(dāng)所述循環(huán)類型為單次觸發(fā)時,在消息隊(duì)列管理模塊將查找到的提醒事件加入消息隊(duì)列后,刪除所述數(shù)據(jù)表中所述查找到的提醒事件的記錄。
13.根據(jù)權(quán)利要求9所述的事件提醒系統(tǒng),其特征在于,所述數(shù)據(jù)表包括單次觸發(fā)類型數(shù)據(jù)表和多次觸發(fā)類型數(shù)據(jù)表; 所述數(shù)據(jù)庫還用于若用戶提交的提醒事件的循環(huán)類型為單次觸發(fā),則將所述提醒事件存儲在與所述觸發(fā)時間所屬的時間區(qū)間對應(yīng)的單次觸發(fā)類型數(shù)據(jù)表中;以及還用于若用戶提交的提醒事件的循環(huán)類型為多次觸發(fā),則將所述提醒事件存儲在與所述觸發(fā)事件所屬的時間區(qū)間對應(yīng)的多次觸發(fā)類型數(shù)據(jù)表中。
14.根據(jù)權(quán)利要求8所述的事件提醒系統(tǒng),其特征在于,所述數(shù)據(jù)庫還用于若獲取的同一觸發(fā)時間對應(yīng)的提醒事件的數(shù)量超過閾值,則按照預(yù)設(shè)長度分割所述與所述同一觸發(fā)時間所屬的時間區(qū)間對應(yīng)的數(shù)據(jù)表。
全文摘要
一種事件提醒方法,包括以下步驟獲取當(dāng)前時間,在與當(dāng)前時間所屬的時間區(qū)間對應(yīng)的所述數(shù)據(jù)表中查找以當(dāng)前時間為觸發(fā)時間的提醒事件,將查找到的提醒事件加入消息隊(duì)列中;從消息隊(duì)列中提取提醒事件并推送給用戶;其中,所述數(shù)據(jù)表為預(yù)先設(shè)置的與時間切片后的一個時間區(qū)間對應(yīng)的數(shù)據(jù)表,所述數(shù)據(jù)表中存儲了觸發(fā)時間在所述時間區(qū)間內(nèi)的提醒事件。該方法能提高事件提醒的精確度而不會增加服務(wù)器資源浪費(fèi)。此外,還提供了一種事件提醒系統(tǒng)。
文檔編號H04L12/58GK103179017SQ20111043302
公開日2013年6月26日 申請日期2011年12月21日 優(yōu)先權(quán)日2011年12月21日
發(fā)明者梁可結(jié) 申請人:騰訊科技(深圳)有限公司