定時(shí)任務(wù)的處理方法和處理裝置制造方法
【專利摘要】本發(fā)明的實(shí)施方式提供了一種定時(shí)任務(wù)的處理方法。該定時(shí)任務(wù)的處理方法包括:在服務(wù)啟動后,讀取為所述服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù)信息;根據(jù)所述定時(shí)任務(wù)信息,動態(tài)創(chuàng)建所述定時(shí)任務(wù)的代理類;注冊所述代理類至調(diào)度器,并配置所述定時(shí)任務(wù)的觸發(fā)器;當(dāng)所述觸發(fā)器的觸發(fā)條件滿足時(shí),在所述調(diào)度器的調(diào)度下,執(zhí)行所述定時(shí)任務(wù)。此外,本發(fā)明的實(shí)施方式提供了一種定時(shí)任務(wù)的處理裝置。根據(jù)本發(fā)明,可以使開發(fā)人員通過簡單的配置就可以引入定時(shí)任務(wù)插件,無需寫入大量代碼,從而顯著地降低了項(xiàng)目的開發(fā)難度,縮短了項(xiàng)目的開發(fā)周期,并且大大簡化了維護(hù)工作。
【專利說明】定時(shí)任務(wù)的處理方法和處理裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明的實(shí)施方式涉及計(jì)算機(jī)領(lǐng)域,更具體地,本發(fā)明的實(shí)施方式涉及定時(shí)任務(wù) 的處理方法和處理裝置。
【背景技術(shù)】
[0002] 本部分旨在為權(quán)利要求書中陳述的本發(fā)明的實(shí)施方式提供背景或上下文。此處的 描述不因?yàn)榘ㄔ诒静糠种芯统姓J(rèn)是現(xiàn)有技術(shù)。
[0003] 定時(shí)任務(wù),是在約定的時(shí)間執(zhí)行已經(jīng)計(jì)劃好的工作。在Linux中,經(jīng)常用到cron 服務(wù)來完成這項(xiàng)工作,其中,采用crontab進(jìn)行定時(shí)任務(wù)管理。
【發(fā)明內(nèi)容】
[0004] 雖然采用crontab可以實(shí)現(xiàn)對定時(shí)任務(wù)的管理,但是,采用crontab對定時(shí)任務(wù) 進(jìn)行管理時(shí),在一個(gè)項(xiàng)目的開發(fā)過程中,不得不為某個(gè)服務(wù)需要定時(shí)執(zhí)行而寫入大量代碼, 由此導(dǎo)致項(xiàng)目的開發(fā)周期延長,項(xiàng)目的開發(fā)成本增加,并且,采用crontab,維護(hù)工作極為繁 重。
[0005] 為此,非常需要一種改進(jìn)的定時(shí)任務(wù)的處理方法及裝置,以解決上述缺陷。
[0006] 在本上下文中,本發(fā)明的實(shí)施方式期望提供一種定時(shí)任務(wù)的處理方法及處理裝 置。
[0007] 在本發(fā)明實(shí)施方式的第一方面中,提供了一種定時(shí)任務(wù)的處理方法,包括:在服務(wù) 啟動后,讀取為所述服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù)信息;根據(jù)所述定時(shí)任務(wù)信 息,動態(tài)創(chuàng)建所述定時(shí)任務(wù)的代理類;注冊所述代理類至調(diào)度器,并配置所述定時(shí)任務(wù)的觸 發(fā)器;當(dāng)所述觸發(fā)器的觸發(fā)條件滿足時(shí),在所述調(diào)度器的調(diào)度下,執(zhí)行所述定時(shí)任務(wù)。
[0008] 在本發(fā)明的一個(gè)實(shí)施例中,所述觸發(fā)器與所述定時(shí)任務(wù)的執(zhí)行策略相關(guān)聯(lián);所述 方法還包括:在通過修改所述定時(shí)任務(wù)信息,更新所述定時(shí)任務(wù)的執(zhí)行策略時(shí),更新所述觸 發(fā)器。
[0009] 在本發(fā)明的另一實(shí)施例中,所述方法還包括:在需要臨時(shí)執(zhí)行所述定時(shí)任務(wù)時(shí),通 過指定接口接收對所述代理類的調(diào)用。
[0010] 在本發(fā)明的又一個(gè)實(shí)施例中,通過修改所述定時(shí)任務(wù)信息,所述定時(shí)任務(wù)的執(zhí)行 方法可以動態(tài)變化。
[0011] 在本發(fā)明的再一個(gè)實(shí)施例中,所述定時(shí)任務(wù)的執(zhí)行方法為Spring bean中的方法。
[0012] 在本發(fā)明實(shí)施方式的第二方面中,提供了一種定時(shí)任務(wù)的處理裝置,包括:讀取模 塊,用于在服務(wù)啟動后,讀取為所述服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù)信息;創(chuàng)建模 塊,用于根據(jù)所述定時(shí)任務(wù)信息,動態(tài)創(chuàng)建所述定時(shí)任務(wù)的代理類;注冊模塊,用于注冊所 述代理類至調(diào)度器,并配置所述定時(shí)任務(wù)的觸發(fā)器;執(zhí)行模塊,用于當(dāng)所述觸發(fā)器的觸發(fā)條 件滿足時(shí),在所述調(diào)度器的調(diào)度下,執(zhí)行所述定時(shí)任務(wù)。
[0013] 根據(jù)本發(fā)明實(shí)施方式的定時(shí)任務(wù)的處理方法和處理裝置,可以使項(xiàng)目開發(fā)人員通 過簡單的配置即可達(dá)到定時(shí)任務(wù)處理裝置的引入。與現(xiàn)有技術(shù)中采用crontab對定時(shí)任務(wù) 進(jìn)行管理的技術(shù)方案相比,項(xiàng)目開發(fā)人員無需寫入大量代碼,從而顯著地降低了項(xiàng)目的開 發(fā)難度,縮短了項(xiàng)目的開發(fā)周期,并且減少了項(xiàng)目的開發(fā)費(fèi)用。此外,后續(xù)的維護(hù)也簡單化 了。
【專利附圖】
【附圖說明】
[0014] 通過參考附圖閱讀下文的詳細(xì)描述,本發(fā)明示例性實(shí)施方式的上述以及其他目 的、特征和優(yōu)點(diǎn)將變得易于理解。在附圖中,以示例性而非限制性的方式示出了本發(fā)明的若 干實(shí)施方式,其中:
[0015] 圖1示意性地示出了本發(fā)明實(shí)施方式可以在其中實(shí)施的環(huán)境;
[0016] 圖2示意性地示出了根據(jù)本發(fā)明實(shí)施例的定時(shí)任務(wù)的處理方法的流程圖;
[0017] 圖3示意性地示出了根據(jù)本發(fā)明實(shí)施例的定時(shí)任務(wù)插件的核心代碼類圖;
[0018] 圖4示意性地示出了根據(jù)本發(fā)明一實(shí)施例的保健品售賣系統(tǒng)定時(shí)任務(wù)管理列表 頁面圖;
[0019] 圖5示意性地示出了根據(jù)本發(fā)明一實(shí)施例的保健品售賣系統(tǒng)配置定時(shí)任務(wù)頁面 圖;
[0020] 圖6示意性地示出了根據(jù)本發(fā)明一實(shí)施例的保健品售賣系統(tǒng)定時(shí)任務(wù)執(zhí)行l(wèi)og輸 出示例圖;
[0021] 圖7示意性地示出了根據(jù)本發(fā)明一實(shí)施例的定時(shí)任務(wù)的處理裝置的結(jié)構(gòu)圖;
[0022] 圖8示意性地示出了根據(jù)本發(fā)明另一實(shí)施例的定時(shí)任務(wù)的處理裝置的結(jié)構(gòu)圖;
[0023] 圖9示意性地示出了根據(jù)本發(fā)明另一實(shí)施例的定時(shí)任務(wù)的處理裝置的結(jié)構(gòu)圖。
[0024] 在附圖中,相同或?qū)?yīng)的標(biāo)號表不相同或?qū)?yīng)的部分。
【具體實(shí)施方式】
[0025] 下面將參考若干示例性實(shí)施方式來描述本發(fā)明的原理和精神。應(yīng)當(dāng)理解,給出這 些實(shí)施方式僅僅是為了使本領(lǐng)域技術(shù)人員能夠更好地理解進(jìn)而實(shí)現(xiàn)本發(fā)明,而并非以任何 方式限制本發(fā)明的范圍。相反,提供這些實(shí)施方式是為了使本公開更加透徹和完整,并且能 夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
[0026] 本領(lǐng)域技術(shù)人員知道,本發(fā)明的實(shí)施方式可以實(shí)現(xiàn)為一種系統(tǒng)、裝置、設(shè)備、方法 或計(jì)算機(jī)程序產(chǎn)品。因此,本公開可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件、完全的軟件 (包括固件、駐留軟件、微代碼等),或者硬件和軟件結(jié)合的形式。
[0027] 根據(jù)本發(fā)明的實(shí)施方式,提出了一種定時(shí)任務(wù)的處理方法及處理裝置。
[0028] 在本文中,需要理解的是,所涉及的術(shù)語"定時(shí)任務(wù)"表示在約定的時(shí)間執(zhí)行已經(jīng) 計(jì)劃好的工作。其中該定時(shí)任務(wù)可以由任一計(jì)算機(jī)程序設(shè)計(jì)語言編寫,可以在任一計(jì)算機(jī) 程序運(yùn)行環(huán)境中運(yùn)行,并不限于Linux。此外,附圖中的任何元素?cái)?shù)量均用于示例而非限制, 以及任何命名都僅用于區(qū)分,而不具有任何限制含義。
[0029] 下面參考本發(fā)明的若干代表性實(shí)施方式,詳細(xì)闡釋本發(fā)明的原理和精神。
[0030] 發(fā)明概沭
[0031] 本發(fā)明人發(fā)現(xiàn),現(xiàn)有技術(shù)中采用crontab對定時(shí)任務(wù)進(jìn)行管理時(shí),在一個(gè)項(xiàng)目的 開發(fā)過程中,不得不為某個(gè)服務(wù)需要執(zhí)行定時(shí)任務(wù)而寫入大量代碼,因而增加了項(xiàng)目的開 發(fā)成本,延長了項(xiàng)目的開發(fā)周期。而如果將定時(shí)任務(wù)作為一個(gè)模塊來進(jìn)行管理,滿足定時(shí) 任務(wù)的創(chuàng)建、修改、臨時(shí)調(diào)用等需求,對比于現(xiàn)有技術(shù)中采用crontab對定時(shí)任務(wù)的管理來 說,將大大降低項(xiàng)目的開發(fā)時(shí)間、降低以后的維護(hù)成本。
[0032] 基于上述分析,本發(fā)明的基本原理在于:將定時(shí)任務(wù)作為一個(gè)模塊進(jìn)行管理,例如 該模塊可以是一個(gè)定時(shí)任務(wù)插件,可以通過引用,而將定時(shí)任務(wù)插件加入到項(xiàng)目中。當(dāng)服務(wù) 啟動后,該定時(shí)任務(wù)插件讀取為所述服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù)信息,為服 務(wù)中待執(zhí)行的定時(shí)任務(wù)動態(tài)創(chuàng)建代理類,將創(chuàng)建的代理類注冊至調(diào)度器,并配置該定時(shí)任 務(wù)的觸發(fā)器,當(dāng)該觸發(fā)器的觸發(fā)條件滿足,在調(diào)度器的調(diào)度下,執(zhí)行該定時(shí)任務(wù)。
[0033] 因此,在項(xiàng)目的開發(fā)過程中,不再需要開發(fā)人員為某個(gè)服務(wù)需要執(zhí)行定時(shí)任務(wù)而 寫多余的代碼,大大降低了項(xiàng)目的開發(fā)成本,縮短了項(xiàng)目的開發(fā)周期。并且,后續(xù)的維護(hù)工 作也簡單化了。
[0034] 在介紹了本發(fā)明的基本原理之后,下面具體介紹本發(fā)明的各種非限制性實(shí)施方 式。
[0035] 應(yīng)用場景總覽
[0036] 首先參考圖1,圖1示意性地示出了根據(jù)本發(fā)明實(shí)施方式可以在其中實(shí)施的環(huán)境。 該環(huán)境例如為一個(gè)保健品售賣系統(tǒng),并且如圖1所示,該環(huán)境共包括4個(gè)服務(wù):(1) online 服務(wù):負(fù)責(zé)商品展示、出售等;(2)offline服務(wù):負(fù)責(zé)線下作業(yè),如抓取價(jià)格、物流信息等; (3) cache服務(wù):負(fù)責(zé)緩存搜索等;(4)ms服務(wù):后臺服務(wù),負(fù)責(zé)商品數(shù)據(jù)、系統(tǒng)數(shù)據(jù)的配置維 護(hù)等。定時(shí)任務(wù)插件可以部署相應(yīng)服務(wù)的相應(yīng)服務(wù)器上。每個(gè)服務(wù)可以有不同的一個(gè)或多 個(gè)服務(wù)器,或者,多個(gè)服務(wù)可以共享一個(gè)服務(wù)器,更一般地,可以是所有服務(wù)都共享一個(gè)服 務(wù)器。系統(tǒng)啟動后,定時(shí)任務(wù)插件會自動讀取數(shù)據(jù)庫TB_CR0N中的配置,自動創(chuàng)建定時(shí)任務(wù) 的代理類,并注冊代理類至調(diào)度器,配置定時(shí)任務(wù)的觸發(fā)器,當(dāng)觸發(fā)器的觸發(fā)條件滿足,在 調(diào)度器的調(diào)度下,執(zhí)行定時(shí)任務(wù)。需要指出的是,數(shù)據(jù)庫TB_CR0N可以位于ms服務(wù)的服務(wù) 器上,也可以位于其他三個(gè)服務(wù)的服務(wù)器上。更一般地,數(shù)據(jù)庫TB_CR0N也可以位于一個(gè)獨(dú) 立的服務(wù)器上。本領(lǐng)域技術(shù)人員可以理解,圖1所示的應(yīng)用環(huán)境僅是本發(fā)明的實(shí)施方式可 以在其中得以實(shí)現(xiàn)的一個(gè)示例。本發(fā)明的范圍不受到該環(huán)境任何方面的限制。
[0037] 基于圖1所示的應(yīng)用環(huán)境,在一個(gè)示例性應(yīng)用場景中,系統(tǒng)管理員可以通過ms服 務(wù)上提供的定時(shí)任務(wù)管理模塊,來直觀地統(tǒng)一全局管理每個(gè)服務(wù)的定時(shí)任務(wù)。當(dāng)系統(tǒng)管理 員通過ms服務(wù)上提供的定時(shí)任務(wù)管理模塊,修改數(shù)據(jù)庫中定時(shí)任務(wù)的配置(定時(shí)任務(wù)信 息)后,定時(shí)任務(wù)插件可以自動讀取定時(shí)任務(wù)的變化,并修改定時(shí)任務(wù)的執(zhí)行方法、策略 等。在需要臨時(shí)緊急執(zhí)行一個(gè)定時(shí)任務(wù)時(shí),也可以通過ms服務(wù)上提供的定時(shí)任務(wù)管理模 塊,通過指定接口調(diào)用定時(shí)任務(wù)插件,以臨時(shí)緊急執(zhí)行定時(shí)任務(wù)。根據(jù)本發(fā)明,完成以上這 些操作,幾乎完全不用多余的代碼,只做簡單的配置即可,方便維護(hù)。
[0038] 示例件方法
[0039] 下面結(jié)合圖1的應(yīng)用場景,參考圖2來描述根據(jù)本發(fā)明示例性實(shí)施方式的用于定 時(shí)任務(wù)的處理方法的流程圖。需要注意的是,上述應(yīng)用場景僅是為了便于理解本發(fā)明的精 神和原理而示出,本發(fā)明在此方面不受任何限制。相反,本發(fā)明的實(shí)施方式可以應(yīng)用于適用 的任何場景。
[0040] 圖2示意性地示出了根據(jù)本發(fā)明實(shí)施例的定時(shí)任務(wù)的處理方法的流程圖。如圖2 所示,在本實(shí)施例中,例如具體可以包括以下步驟:
[0041] 步驟201、在服務(wù)啟動后,讀取為所述服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù)信 息;
[0042] 步驟202、根據(jù)所述定時(shí)任務(wù)信息,動態(tài)創(chuàng)建所述定時(shí)任務(wù)的代理類;
[0043] 步驟203、注冊所述代理類至調(diào)度器,并配置所述定時(shí)任務(wù)的觸發(fā)器;
[0044] 步驟204、當(dāng)所述觸發(fā)器的觸發(fā)條件滿足時(shí),在所述調(diào)度器的調(diào)度下,執(zhí)行所述定 時(shí)任務(wù)。
[0045] 圖2所示定時(shí)任務(wù)的處理方法即本發(fā)明實(shí)施例中定時(shí)任務(wù)插件所執(zhí)行的具體步 驟。在一個(gè)實(shí)施例中,該定時(shí)任務(wù)插件的主要實(shí)現(xiàn)原理是在系統(tǒng)運(yùn)行時(shí),通過ASM直接操作 字節(jié)碼(class)文件,從而在運(yùn)行時(shí)動態(tài)派生出增強(qiáng)子類,該增強(qiáng)子類即定時(shí)任務(wù)的代理 類。其中,ASM僅作為一可選的字節(jié)碼操控框架用于本實(shí)施例,本領(lǐng)域技術(shù)人員在具體實(shí)現(xiàn) 時(shí)可以根據(jù)需要采用其它方式。
[0046] 圖3示意性地示出了根據(jù)本發(fā)明實(shí)施例的定時(shí)任務(wù)插件的核心代碼類圖,可作為 本領(lǐng)域技術(shù)人員實(shí)現(xiàn)定時(shí)任務(wù)插件的參考。如圖3所示,在一個(gè)實(shí)施例中,在服務(wù)啟動后,定 時(shí)任務(wù)插件會讀取數(shù)據(jù)庫中為服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù)信息,然后根據(jù)定 時(shí)任務(wù)信息動態(tài)創(chuàng)建該定時(shí)任務(wù)的代理類。該創(chuàng)建過程例如可以包括通過ClassGenerator 動態(tài)創(chuàng)建定時(shí)任務(wù)的代理類:AbstractJob類的子類。其中,ClassGenerator會通過調(diào) 用 EnhanceJobClassAdapter、DoJobMethodAdapter、InitMethodAdapter 來動態(tài)構(gòu)建出 Abstract Job的子類Abstract Job$EnhancedByASM$***。在代理類的創(chuàng)建過程中,每個(gè)定時(shí) 任務(wù)會根據(jù)自身的配置不同生成一個(gè)唯一的編碼id,針對這個(gè)定時(shí)任務(wù)生成的代理類的名 稱會包含這個(gè)唯一的id。該代理類是Abstractjob的子類,重寫了抽象方法dojob,dojob 方法中例如會通過Spring容器獲取到bean的引用,然后調(diào)用bean中配置的方法。
[0047] 再如圖3所示,生成定時(shí)任務(wù)的代理類后,會通過JobManager將該代理類注冊到 調(diào)度器(Scheduler)上,并為定時(shí)任務(wù)配置相應(yīng)的觸發(fā)器(Trigger),當(dāng)觸發(fā)器的觸發(fā)條件 滿足時(shí),在調(diào)度器(Scheduler)的調(diào)度下,執(zhí)行定時(shí)任務(wù)。
[0048] 其中,該調(diào)度器調(diào)度所有的定時(shí)任務(wù),并且,例如,該調(diào)度器可以由系統(tǒng)產(chǎn)生。
[0049] 參考圖2、圖3可知,本發(fā)明實(shí)施例的定時(shí)任務(wù)的處理方法,在運(yùn)行時(shí)動態(tài)創(chuàng)建類, 可以避免使用反射帶來的效率開銷。此外,為定時(shí)任務(wù)配置的觸發(fā)器可以與定時(shí)任務(wù)的執(zhí) 行策略(例如時(shí)間)相關(guān)聯(lián),這樣通過修改定時(shí)任務(wù)信息更新定時(shí)任務(wù)的執(zhí)行策略時(shí),可以 更新觸發(fā)器,例如,可以直接替換Trigger。
[0050] 在有些實(shí)施場景中,一個(gè)在線運(yùn)行的定時(shí)任務(wù),可能需要調(diào)整執(zhí)行時(shí)間、頻率等。 使用了本發(fā)明實(shí)施例的定時(shí)任務(wù)插件,可以在不重啟在線服務(wù)的前提下,滿足以上這些需 求。實(shí)施例中通過修改定時(shí)任務(wù)信息,定時(shí)任務(wù)的執(zhí)行方法即可動態(tài)變化。其中定時(shí)任務(wù) 的執(zhí)行方法例如是指Spring bean中的方法。
[0051] 此外,在實(shí)施例中,當(dāng)需要臨時(shí)緊急執(zhí)行定時(shí)任務(wù)時(shí),還可以通過定時(shí)任務(wù)插件的 指定接口對定時(shí)任務(wù)進(jìn)行調(diào)用。換句話說,當(dāng)需要臨時(shí)緊急執(zhí)行某個(gè)定時(shí)任務(wù)時(shí),定時(shí)任務(wù) 插件可以通過指定接口,來接收對代理類的調(diào)用,從而執(zhí)行相應(yīng)的定時(shí)任務(wù)。這在實(shí)際的開 發(fā)過程中,是非常有用的,尤其對本地調(diào)試、測試環(huán)境測試,給予了非常大的方便性。舉例而 言,定時(shí)任務(wù)有很多種,例如系統(tǒng)中的商品緩存需要定時(shí)刷新,在正常情況下可以配置每一 個(gè)小時(shí)刷新一次。但有時(shí)由于各種特殊情況的發(fā)生需要馬上刷新商品緩存,這種需求可以 通過系統(tǒng)管理員通過定時(shí)任務(wù)插件的指定接口調(diào)用定時(shí)任務(wù)立即執(zhí)行(不按預(yù)定的時(shí)間 計(jì)劃執(zhí)行)。
[0052] 實(shí)施例中一個(gè)工程(例如一個(gè)服務(wù))如果需要引入定時(shí)任務(wù)插件,技術(shù)人員需要 如下幾部分的操作。需要說明的是,本例中對定時(shí)任務(wù)插件的引入僅為一具體實(shí)例,本領(lǐng)域 技術(shù)人員在具體實(shí)現(xiàn)時(shí),可以參考本例的實(shí)施采用其它的具體配置方式。在本例中引入定 時(shí)任務(wù)插件可以包括:
[0053] (1)將jar包加入到工程classpath中;
[0054] (2)在數(shù)據(jù)庫中新建數(shù)據(jù)庫表TB_CR0N ;
[0055] (3)在工程的SqlMapConfig. xml中,加入例如如下的對表TB_CR0N的配置:
【權(quán)利要求】
1. 一種定時(shí)任務(wù)的處理方法,包括: 在服務(wù)啟動后,讀取為所述服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù)信息; 根據(jù)所述定時(shí)任務(wù)信息,動態(tài)創(chuàng)建所述定時(shí)任務(wù)的代理類; 注冊所述代理類至調(diào)度器,并配置所述定時(shí)任務(wù)的觸發(fā)器; 當(dāng)所述觸發(fā)器的觸發(fā)條件滿足時(shí),在所述調(diào)度器的調(diào)度下,執(zhí)行所述定時(shí)任務(wù)。
2. 如權(quán)利要求1所述的方法,其中,所述觸發(fā)器與所述定時(shí)任務(wù)的執(zhí)行策略相關(guān)聯(lián);以 及 所述方法還包括: 在通過修改所述定時(shí)任務(wù)信息,更新所述定時(shí)任務(wù)的執(zhí)行策略時(shí),更新所述觸發(fā)器。
3. 如權(quán)利要求1所述的方法,還包括: 在需要臨時(shí)執(zhí)行所述定時(shí)任務(wù)時(shí),通過指定接口接收對所述代理類的調(diào)用。
4. 如權(quán)利要求1所述的方法,其中,通過修改所述定時(shí)任務(wù)信息,所述定時(shí)任務(wù)的執(zhí)行 方法可以動態(tài)變化。
5. 如權(quán)利要求1所述的方法,其中,所述定時(shí)任務(wù)的執(zhí)行方法為Spring bean中的方 法。
6. -種定時(shí)任務(wù)的處理裝置,包括: 讀取模塊,用于在服務(wù)啟動后,讀取為所述服務(wù)中待執(zhí)行的定時(shí)任務(wù)配置的定時(shí)任務(wù) 信息; 創(chuàng)建模塊,用于根據(jù)所述定時(shí)任務(wù)信息,動態(tài)創(chuàng)建所述定時(shí)任務(wù)的代理類; 注冊模塊,用于注冊所述代理類至調(diào)度器,并配置所述定時(shí)任務(wù)的觸發(fā)器; 執(zhí)行模塊,用于當(dāng)所述觸發(fā)器的觸發(fā)條件滿足時(shí),在所述調(diào)度器的調(diào)度下,執(zhí)行所述定 時(shí)任務(wù)。
7. 如權(quán)利要求6所述的處理裝置,其中: 所述觸發(fā)器與所述定時(shí)任務(wù)的執(zhí)行策略相關(guān)聯(lián); 所述裝置還包括:更新模塊,用于在通過修改所述定時(shí)任務(wù)信息,更新所述定時(shí)任務(wù)的 執(zhí)行策略時(shí),更新所述觸發(fā)器。
8. 如權(quán)利要求6所述的處理裝置,還包括: 接口模塊,用于在需要臨時(shí)執(zhí)行所述定時(shí)任務(wù)時(shí),接收對所述代理類的調(diào)用。
9. 如權(quán)利要求6所述的處理裝置,其中, 通過修改所述定時(shí)任務(wù)信息,所述定時(shí)任務(wù)的執(zhí)行方法可以動態(tài)變化。
10. 如權(quán)利要求9所述的處理裝置,其中,所述定時(shí)任務(wù)的執(zhí)行方法為Spring bean中 的方法。
【文檔編號】G06F9/48GK104156265SQ201410389228
【公開日】2014年11月19日 申請日期:2014年8月8日 優(yōu)先權(quán)日:2014年8月8日
【發(fā)明者】甘天明 申請人:樂得科技有限公司