專利名稱:一種即時通訊工具調度任務的方法和即時通訊工具的制作方法
技術領域:
本發明涉及即時通訊技術領域,尤其涉及一種即時通訊工具調度任務的 方法和即時通訊工具。
背景技術:
網絡即時通訊(Instant Messager, IM )工具發展到今天,已經被大多數 的網民所接受,已經成為用戶必不可少的軟件工具。用戶在使用IM工具時, 對IM工具的啟動過程所消耗的時間非常關心,只有啟動快的IM工具才能 給用戶以輕快的使用體驗。因此,廣大的IM工具運營商都通過不斷的優化 啟動性能來滿足用戶對IM工具更高的使用需求。
IM工具包含多個功能模塊,每個功能模塊又包含多個任務,目前,IM 工具在啟動過程中,對所述各個功能模塊的任務函數進行統一調度,因此, 調度難度較大,IM工具的啟動時延也較長。
發明內容
有鑒于此,本發明實施例的目的在于提供一種即時通訊工具調度任務的 方法和即時通訊工具,以降〗氐IM工具的啟動時延。
為達到上述目的,本發明實施例的技術方案具體是這樣實現的 一種即時通訊工具調度任務的方法,該方法包括
將任務的執行時延信息和優先級信息預先配置在啟動程序配置表中,即時 通訊IM工具按照所述啟動程序配置表中的任務信息調度任務。
一種即時通訊工具,該即時通訊工具包括登錄流程管理模塊和任務調度管 理模塊;
所述登錄流程管理模塊,用于存儲啟動程序配置表,所述配置表中配置有任務的執行時延信息和優先級信息;
所述任務調度管理模塊,用于按照所述啟動程序配置表中的任務信息調度 任務。
可見,本發明實施例中,將任務的執行時延信息和優先級信息預先配置在
啟動程序配置表中,IM工具按照所述啟動程序配置表中的任務信息調度任務。 由于設置了啟動程序配置表,且該配置表中既包含任務的執行時延信息,也包 含任務的優先級信息,不同任務的執行時延信息一般不同,優先級信息一般也 不同,因此,IM工具可以按照執行時延信息和優先級信息對任務進行分批調度, 從而降低IM工具的啟動時延。
圖1是本發明IM工具根據啟動程序配置表中的任務信息調度任務的方 法流程圖2是本發明即時通訊工具的結構圖。
具體實施例方式
本發明實施例中,將任務的執行時延信息和優先級信息預先配置在啟動程 序配置表中,IM工具按照所述啟動程序配置表中的任務信息調度任務。
為使本發明的目的、技術方案及優點更加清楚明白,以下參照附圖并舉 實施例,對本發明進一步詳細說明。
本發明實施例中的啟動程序配置表中存儲了 IM工具的各項任務的任務 信息。所述任務信息包括執行時延信息、優先級信息、任務的接口函數以及 任務類型等信息。其中,任務的接口函數通常是任務函數的指針,可以通過 任務的接口函數執行所述任務。
其中,任務類型信息通常包括四種,分別為"正常登錄或上線執行,, (EO-ONLINE)、"離線登錄時執行"(EO-OFFLINE) 、"IM工具進程 第一次登錄時4丸行"(EO—ONCE—ONLINE )和"正常登錄以及離線登錄都執行"(EO—ONCE)。 IM工具根據每次登錄類型的不同,啟動相應類型的 任務,例如,在離線登錄時,IM工具啟動類型為EO-OFFLINE的任務。IM 工具觸發登錄操作后,經過所述執行時延信息指明的時長,再調度具有所述 執行時延信息的任務。
啟動程序配置表中的任務信息可以以任務列表的形式存儲,其中,不同 的任務列表對應IM工具不同的功能模塊,下面舉例說明任務列表的結構。
tagTasklnfo arTaskInfo[]=
{&UpdateSelflnfo, 1000, EO—ONLINE },
{&UpdateContactList, 1000, EO—ONCE—ONLINE},
{&UpdateContactFolderList, 0, EO—ONLINE}, {&UpdateAUBuddy Status, 0, EO—ONLINE},
};
該任務列表中含有四個任務,第一個任務是更新自身信息,第二個任務 是更新聯系人列表,第三個任務是更新聯系人文件夾列表,第四個任務是更 新所有狀態。
除了第二個任務是IM工具進程第一次登錄時運行外,其他三個任務都 是每次正常登錄或上線時均執行。前兩個任務是開始登錄后延時1000毫秒 開始調度,后兩個任務是開始登錄即調度。
上述四個任務的先后順序代表了任務的優先級信息,任務優先級按照由 高到低依次為第一任務至第四任務。
啟動程序配置表中的任務信息還可以以數據庫的形式存儲,這時,上述 任務列表可由IM工具在每次啟動時,動態地#4居啟動程序配置表中的任務
信息生成。
下面詳細介紹IM工具根據啟動程序配置表中的任務信息調度任務的方法。
圖l是本發明IM工具根據啟動程序配置表中的任務信息調度任務的方法流程圖,如圖l所示,該方法包括
步驟101,登錄流程管理模塊根據啟動程序配置表加載任務列表。
本步驟中,當啟動程序配置表中的任務信息以任務列表的形式存儲時,
IM工具直接加載所述任務列表,當啟動程序配置表中的任務信息以數據庫 的形式存儲時,登錄流程模塊根據所述任務信息動態生成所述任務列表。 步驟102,登錄流程管理模塊遍歷任務列表,提取每個任務的執行時延信息。
步驟103,判斷執行時延是否為0,如果是,執行步驟104,否則,執行步 驟105。
步驟104,登錄流程管理模塊運行執行時延為0的任務。 步驟105,登錄流程管理模塊將執行時延不為0的任務注冊到任務調度管 理模塊,同時設置所述任務的回調接口函數。
步驟106,任務調度管理模塊接收任務注冊信息,設置調度定時器。 本步驟中,任務調度管理模塊為注冊的任務設置標識(Identity, ID),建 立所述任務的ID與該任務的任務信息的映射關系表,并為該任務啟動相應的調 度定時器,所述調度定時器也以該ID進行標識,所述調度定時器的計時時長為 該任務的執行時延,且每個定時器只運行一次,超時即停止。
步驟107,任務調度管理模塊根據調度定時器的狀態對任務進行調度。 本步驟中,在調度定時器到期后,任務調度管理模塊根據當前到期調度定 時器的ID查詢步驟105中建立的映射關系中的任務信息,將該任務信息中的任 務狀態字段設置為Ready狀態,啟動空閑處理Idle定時器,對處于Ready狀態 的任務進行調度。
任務調度管理模塊在Idle定時器計時期間,對處于Ready狀態的任務進行 調度,具體方法為任務調度管理模塊遍歷步驟105中建立的映射關系表,提 取每個任務信息中的狀態字段,判斷是否為Ready狀態,將處于Ready狀態的 任務設置為運行(Running )狀態,通過回調接口函數通知登錄流程管理模塊運 4亍Running 、犬態的1"壬務。步驟108,登錄流程管理模塊根據任務調度信息運行任務。
本步驟中,登錄流程管理模塊運行處于Running狀態的任務,并在任務運
行完畢后,通知任務調度管理模塊,例如,可以通過回調接口函數通知任務調
度管理模塊。
步驟109,任務調度管理模塊清除運行完畢的任務,直至所有任務運行完 畢,結束本流程。
本步驟中,任務調度管理模塊將所述運行完畢任務的任務狀態設置為無效 (NONE )狀態,清除步驟105建立的映射關系表中NONE狀態任務的映射信 息。任務調度管理模塊遍歷映射關系表中的各個任務狀態,只要有處于Ready 狀態的任務,則啟動或重啟Idle定時器,直至所有任務運行完畢為止。
下面給出應用圖1所示方法的裝置實施例。
圖2是本發明即時通訊工具的結構圖,如圖2所示,該即時通訊工具包括 登錄流程管理模塊201和任務調度管理模塊202。
登錄流程管理模塊201,用于存儲啟動程序配置表,所述配置表中配置有 任務的執行時延信息和優先級信息。
任務調度管理模塊202,用于按照所述啟動程序配置表中的任務信息調度 任務。
登錄流程管理模塊201還可進一步用于,遍歷啟動程序配置表中任務的執 行時延信息,對于執行時延不為0的任務,將所述任務注冊到任務調度管理模 塊202。
任務調度管理模塊202還可進一步用于,按照注冊的任務的執行時延信息 和優先級信息對所述任務進行調度。
由上述技術方案可見,本發明實施例中,將任務的執行時延信息和優先級 信息預先配置在啟動程序配置表中,IM工具按照所述啟動程序配置表中的任務 信息調度任務。由于設置了啟動程序配置表,且該配置表中既包含任務的執行 時延信息,也包含任務的優先級信息,不同任務的執行時延信息一般不同,優 先級信息一般也不同,因此,IM工具可以按照執行時延信息和優先級信息對任務進行分批調度,從而降低IM工具的啟動時延。例如,可以將啟動IM工具時,
必須運行的任務的執行時延設置為0,而將其他可以在IM工具啟動后運行的任 務的執行時延設置為非0,降低IM工具的啟動時延。
而且,當需要在IM工具中增加新的功能模塊時,開發人員只需要將新增 加功能模塊的各個任務的執行時延、優先級等任務信息添加進啟動程序配置表, 即可完成對新增加的功能模塊啟動過程的管理,提高了 IM工具的可擴展性, 降低了開發人員維護IM工具啟動過程的工作量。
以上所述,僅為本發明的較佳實施例而已,并非用于限定本發明的保護 范圍,凡在本發明的精神和原則之內所做的任何修改、等同替換、改進等, 均應包含在本發明的保護范圍之內。
權利要求
1、一種即時通訊工具調度任務的方法,其特征在于,該方法包括將任務的執行時延信息和優先級信息預先配置在啟動程序配置表中,即時通訊IM工具按照所述啟動程序配置表中的任務信息調度任務。
2、 如權利要求l所述的方法,其特征在于,所述IM工具按照所述啟動程 序配置表中的任務信息調度任務包括IM工具按照執行時延信息顯示的任務執行先后順序,對具有相同執行時延 信息的任務,按照所述任務的優先級信息進行調度。
3、 如權利要求2所述的方法,其特征在于,所述對具有相同執行時延信息 的任務,按照所述任務的優先級信息進行調度包括遍歷啟動程序配置表中任務的執行時延信息,運行執行時延為0的任務。
4、 如權利要求2所述的方法,其特征在于,所述對具有相同執行時延信息 的任務,按照所述任務的優先級信息進行調度包括遍歷啟動程序配置表中任務的執行時延信息,對于執行時延不為0的任務, IM工具的登錄流程管理模塊將所述任務注冊到任務調度管理模塊,由任務調度 管理模塊按照所述任務的執行時延信息和優先級信息對所述任務進行調度。
5、 如權利要求4所述的方法,其特征在于,所述由任務調度管理模塊按照 所述任務的優先級信息對所述任務進行調度包括任務調度管理模塊接收到任務注冊后,為注冊的任務賦予標識ID,建立所 述ID與所述任務的任務信息的映射關系表,啟動以所述ID作為標識的調度定 時器,將所述調度定時器的計時時長設置為所述任務的執行時延,根據調度定 時器的狀態對任務進行調度。
6、 如權利要求5所述的方法,其特征在于,登錄流程管理模塊將所述任務 注冊到任務調度管理模塊之后,進一步包括設置所述任務的回調接口函數;所述根據調度定時器的狀態對任務進行調度包括調度定時器超時后,查詢ID與任務信息的映射關系表,將所述調度定時器的ID對應的任務信息中的任務狀態字段設置為準備Ready狀態,同時啟動空 閑Idle定時器,在Idle定時器計時期間,遍歷所述映射關系表,將Ready狀態 的任務狀態字段設置為運行Running狀態,并通過所述任務的回調接口函數通 知登錄流程管理模塊運行Running狀態的任務。
7、 如權利要求6所述的方法,其特征在于,登錄流程管理模塊運行完Running狀態的任務后,將運行完的所述任務的 任務狀態字段設置為無效NONE狀態,任務調度管理模塊清除NONE狀態任務 在所述映射關系表中的信息。
8、 如權利要求l所述的方法,其特征在于,當在即時通訊工具中添加新任務時,在所述啟動程序配置表中添加所述新 任務的執行時延信息和優先級信息。
9、 一種即時通訊工具,其特征在于,該即時通訊工具包括登錄流程管理模 塊和任務調度管理模塊;所述登錄流程管理模塊,用于存儲啟動程序配置表,所述配置表中配置有 任務的執行時延信息和優先級信息;所述任務調度管理模塊,用于按照所述啟動程序配置表中的任務信息調度 任務。
10、 如權利要求9所述的即時通訊工具,其特征在于, 所述登錄流程管理模塊進一步用于,遍歷啟動程序配置表中任務的執行時延信息,對于執行時延不為0的任務,將所述任務注冊到任務調度管理模塊;所述任務調度管理模塊進一步用于,按照注冊的任務的執行時延信息和優 先級信息對所述任務進行調度。
全文摘要
本發明實施例公開了一種即時通訊工具調度任務的方法和即時通訊工具。該方法包括將任務的執行時延信息和優先級信息預先配置在啟動程序配置表中,即時通訊IM工具按照所述啟動程序配置表中的任務信息調度任務。該即時通訊工具包括登錄流程管理模塊和任務調度管理模塊;所述登錄流程管理模塊,用于存儲啟動程序配置表,所述配置表中配置有任務的執行時延信息和優先級信息;所述任務調度管理模塊,用于按照所述啟動程序配置表中的任務信息調度任務。應用本發明,可降低IM工具的啟動時延。
文檔編號H04L12/24GK101296199SQ200810127578
公開日2008年10月29日 申請日期2008年6月27日 優先權日2008年6月27日
發明者劉曉聰, 斌 李, 李訓耕 申請人:騰訊科技(深圳)有限公司