專利名稱:進程運行裝置及方法
技術領域:
本發(fā)明涉及網(wǎng)絡應用領域,具體涉及一種進程運行裝置及方法。
背景技術:
目前的網(wǎng)絡應用(例如360桌面或瀏覽器)通常會面對數(shù)千萬的在線用戶,大量的用戶應用的情況下,消息能否及時發(fā)送,就顯得非常重要,直接影響用戶體驗。在線用戶是放在一個隊列中,需要一個守護進程(Daemon)不斷去處理該用戶隊列,現(xiàn)有技術中采用了使用PHP (Hypertext Preprocessor, 一種腳本語言,可以在命令行模式下執(zhí)行)腳本的定 時任務,這么一種模擬守護進程的方式來實現(xiàn)守護進程,取得不錯的效果。守護進程是運行在后臺的一種特殊進程。它獨立于控制終端并且周期性地執(zhí)行某種任務或等待處理某些發(fā)生的事件。守護進程最重要的特性是后臺運行。其次,守護進程必須與其運行前的環(huán)境隔離開來。這些環(huán)境包括未關閉的文件描述符,控制終端,會話和進程組,工作目錄以及文件創(chuàng)建掩模等。這些環(huán)境通常是守護進程從執(zhí)行它的父進程(特別是提供用戶使用界面的軟件(shell))中繼承下來的。最后,守護進程的啟動方式有其特殊之處。它可以在Linux系統(tǒng)啟動時從啟動腳本/etc/rc. d中啟動,可以由作業(yè)規(guī)劃進程(crond)啟動,還可以由用戶終端(通常是she 11)執(zhí)行??傊?,除這些特殊性以外,守護進程與普通進程基本上沒有什么區(qū)別。因此,編寫守護進程實際上是把一個普通進程按照上述的守護進程的特性改造成為守護進程。在設置周期性被執(zhí)行的指令(crontab)計劃任務中,寫入PHP腳本,定為每分鐘都會利用fork函數(shù)調(diào)度一個進程來執(zhí)行PHP腳本。假設每個PHP腳本的最大執(zhí)行時間是10分鐘,超過10分鐘就停止執(zhí)行。在10分鐘內(nèi),保證能有10個進程在執(zhí)行,并且,一個PHP腳本執(zhí)行時間到期后,其余PHP腳本還在繼續(xù)執(zhí)行,相當于該PHP腳本不間斷的執(zhí)行,也就模擬了守護進程的功能。Linux中的nohup命令的功能就是不掛斷的執(zhí)行命令,同時nohup把程序的所有輸出放到當前目錄的nohup. out文件中,如果文件不可寫,則放到〈用戶主目錄>/nohup. out文件中。那么有了這個命令以后,PHP程序就可以被改寫成shell腳本,使用循環(huán)來讓腳本一直運行,那么不管終端窗口是否關閉,都能夠讓PHP腳本一直運行。當然,當PHP進程被殺或者操作系統(tǒng)重啟的情況下,PHP腳本自然就會中止了。但是,操作系統(tǒng)重啟或守護進程可能導致腳本進程意外中斷,此時如果不能即時重啟,那么無法為用戶提供腳本進程的處理,則網(wǎng)絡應用提供的服務就會中斷。另外,若守護進程長時間運轉(zhuǎn),導致腳本進程也長時間工作,若腳本進程的代碼存在內(nèi)存泄漏的情況,長時間運轉(zhuǎn)會導致問題會逐漸放大,直到系統(tǒng)崩潰。
發(fā)明內(nèi)容
鑒于上述問題,提出了本發(fā)明以便提供一種克服上述問題或者至少部分地解決上述問題的進程運行裝置和相應的進程運行方法。
依據(jù)本發(fā)明的一個方面,提供了一種進程運行裝置,包括定時器,配置為定制多個腳本進程的運行時長,其中,多個腳本進程并行處理;計時器,配置為對每個腳本進程的運行時間進行計時;觸發(fā)器,配置為對于任意一個腳本進程,當計時器的計時時長達到該腳本進程的運行時長時,退出該計時器對應的腳本進程,觸發(fā)新的腳本進程運行??蛇x地,上述進程運行裝置還包括銷毀器,配置為銷毀退出的腳本進程??蛇x地,計時器還配置為在操作系統(tǒng)重啟或者守護進程意外中斷導致腳本進程中斷時,針對中斷的腳本進程繼續(xù)進行計時,直至到達運行時長??蛇x地,上述進程運行裝置還包括處理器,配置為計時器的計時時長未達到運行時長時,判斷當前用戶隊列中是否存在用戶數(shù)據(jù),若是,則對用戶數(shù)據(jù)進行處理,若否,則待指定時長后對用戶數(shù)據(jù)再次進行判斷??蛇x地,上述進程運行裝置設置在Cron定時腳本任務中。根據(jù)本發(fā)明的另一方面,提供了一種進程運行方法,包括對每個腳本進程的運行時間進行計時,其中,多個腳本進程并行處理,且預設每個腳本進程的運行時長;當其中任意一個腳本進程的計時時長達到為該腳本進程設置的運行時長時,退出該腳本進程,并觸發(fā)新的腳本進程運行??蛇x的,退出當前腳本進程之后,上述進程運行方法還包括銷毀當前腳本進程??蛇x的,上述進程運行方法還包括在操作系統(tǒng)重啟或者守護進程意外中斷導致腳本進程中斷時,繼續(xù)對中斷的每個腳本進程繼續(xù)的計時操作;以及當任意一個腳本進程的計時時長達到運行時長時,該腳本進程退出該腳本進程,并觸發(fā)新的腳本進程運行??蛇x的,當其中任意一個腳本進程的計時時長未達到運行時長時,判斷當前用戶隊列中是否存在用戶數(shù)據(jù),若是,則對用戶數(shù)據(jù)進行處理,若否,則待指定時長后重新判斷。可選的,指定時長為I秒??蛇x的,每個腳本進程的運行時長相同或不同??蛇x的,當每個腳本進程的運行時長相同時,設置每個腳本進程的運行時長為10分鐘。可選的,設置10個腳本同時并行處理。在一個實施例中,設置多個腳本進程并行處理,相對于現(xiàn)有技術的用戶放在一個隊列中的情況能夠大大加快應用處理的速度。特別在網(wǎng)絡應用的用戶較多時,多個腳本進程的并行處理能夠提高處理速度,提高用戶的感受體驗。在一個實施例中,利用計時器對每個腳本進程進行計時,當計時器的計時時長達到該腳本進程的運行時長時,觸發(fā)器就會觸發(fā)新的操作,觸發(fā)當前腳本進程退出,并觸發(fā)新的腳本進程運行。由此可見,本發(fā)明中的腳本進程是持續(xù)更新啟動的,保證了有一定數(shù)量的腳本進程處于運行狀態(tài)的,即使操作系統(tǒng)重啟或者守護進程意外中斷,觸發(fā)器也會在計時到達的情況下觸發(fā)新的腳本進程運行,不會造成服務中斷。在一個實施例中,由于每個腳本進程的運行時間是設定的,計時器計時到達則觸發(fā)器觸發(fā)該腳本進程退出運行狀態(tài),由此可見,每個腳本進程的運行時間較短,即使該腳本進程的代碼存在內(nèi)存泄漏的情況,也不會因長時間運轉(zhuǎn)導致問題放大,從而避免了系統(tǒng)崩潰的情況。上述說明僅是本發(fā)明技術方案的概述,為了能夠更清楚了解本發(fā)明的技術手段,而可依照說明書的內(nèi)容予以實施,并且為了讓本發(fā)明的上述和其它目的、特征和優(yōu)點能夠更明顯易懂,以下特舉本發(fā)明的具體實施方式
。
通過閱讀下文優(yōu)選實施方式的詳細描述,各種其他的優(yōu)點和益處對于本領域普通技術人員將變得清楚明了。附圖僅用于示出優(yōu)選實施方式的目的,而并不認為是對本發(fā)明的限制。而且在整個附圖中,用相同的參考符號表示相同的部件。在附圖中圖1示出了根據(jù)本發(fā)明一個實施例的進程運行裝置的結構示意圖;圖2示出了根據(jù)本發(fā)明一個實施例的PHP模擬守護進程的流程圖;圖3示出了根據(jù)本發(fā)明一個實施例的進程運行方法的流程圖;圖4示出了根據(jù)本發(fā)明一個實施例的進程運行方法的另一流程圖;以及圖5示出了根據(jù)本發(fā)明一個實施例的腳本進程意外中斷的處理方法的流程圖。
具體實施例方式下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應當理解,可以以各種形式實現(xiàn)本公開而不應被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領域的技術人員。圖1示出了根據(jù)本發(fā)明一個實施例的進程運行裝置的結構示意圖。參見圖1,該進程運行裝置包括定時器110、計時器120以及觸發(fā)器130。定時器110定制了多個腳本進程的運行時長,其中,多個腳本進程是并行處理的,每個腳本進程的運行時長可以定制為相同的時長,也可以定制為不同的時長。例如,可以設置每個腳本進程的運行時長為10分鐘,也可以設置第一個腳本進程的運行時間是10分鐘,而第二個腳本進程的運行時間為5分鐘,等等。此處的10分鐘和5分鐘僅僅是一個實例,還可以是20分鐘、30分鐘等時間,具體的運行時長根據(jù)腳本進程的屬性進行選擇。計時器120,耦接到定時器110,對定時器110定時的每個腳本進程的運行時間進行計時。若采用的計時器的功能較為單一,只能為一個腳本進程進行計時,則為每個腳本進程配置一個計時器。若采用的計時器可以實現(xiàn)多個對象同步計時,則可以根據(jù)腳本進程的數(shù)量與計時器的計時對象進行配置。例如,一共有10個腳本進程,一個計時器可以同時為5個腳本進程進行計時,則只需要配置2個計時器即可。觸發(fā)器130,耦接到計時器120。對于任意一個腳本進程,當計時器120的計時時長達到該腳本進程的運行時長時,觸發(fā)器130觸發(fā)新的操作,令該計時器120對應的腳本進程退出運行狀態(tài),并觸發(fā)新的腳本進程進行運行。在本發(fā)明實施例提供的進程運行裝置中,設置多個腳本進程并行處理,相對于現(xiàn)有技術的用戶放在一個隊列中的情況能夠大大加快應用處理的速度。特別在網(wǎng)絡應用的用戶較多時,多個腳本進程的并行處理能夠提高處理速度,提高用戶的感受體驗。進一步,利用計時器對每個腳本進程進行計時,當計時器的計時時長達到該腳本進程的運行時長時,觸發(fā)器就會觸發(fā)新的操作,觸發(fā)當前腳本進程退出,并觸發(fā)新的腳本進程運行。由此可見,本發(fā)明中的腳本進程是持續(xù)更新啟動的,保證了有一定數(shù)量的PHP腳本處于運行狀態(tài)的,即使操作系統(tǒng)重啟或者守護進程意外中斷,觸發(fā)器也會在計時到達的情況下觸發(fā)新的腳本進程運行,不會造成服務中斷。并且,在本發(fā)明中,由于每個腳本進程的運行時間是設定的,計時器計時到達則觸發(fā)器觸發(fā)該腳本進程退出運行狀態(tài),由此可見,每個腳本進程的運行時間較短,即使該腳本進程的代碼存在內(nèi)存泄漏的情況,也不會因長時間運轉(zhuǎn)導致問題放大,從而避免了系統(tǒng)崩潰的情況。其中,各腳本進程的語言可以是能夠?qū)崿F(xiàn)其相應功能的任意語言,例如,較為常見的PHP、C、C++、Iinux等語言均可。目前使用較多的是PHP腳本,當然,使用C語言效率會更高。假設每個PHP腳本的運行時間為10分鐘,在本發(fā)明中,超過10分鐘后,PHP腳本自動終止運行,也就不存在內(nèi)存泄漏的風險。而另外如果操作系統(tǒng)重啟或守護進程意外中斷,觸發(fā)器也會繼續(xù)觸發(fā)PHP腳本,保證有一定的PHP腳本(例如10個)處于運行狀態(tài),消息系統(tǒng)的穩(wěn)定性就能夠得到保證。為了防止內(nèi)存泄漏以及合理回收,參見圖1,本發(fā)明實施例提供的進程運行裝置還包括銷毀器140,銷毀退出的腳本進程。在出現(xiàn)操作系統(tǒng)重啟或者守護進程意外中斷導致腳本進程中斷的意外情況時,為保證系統(tǒng)的穩(wěn)定性,每個計時器120會針對中斷的腳本進程繼續(xù)進行計時,直至到達運行時長。當計時器120達到運行時長時,其必然會觸發(fā)與該計時器120耦合的觸發(fā)器130,觸發(fā)新的腳本進程運行,為用戶提供服務,避免出現(xiàn)服務中斷的情況。參見圖1,本發(fā)明實施例提供的進程運行裝置還包括處理器150,耦接到計時器120。處理器150能夠在腳本進程的執(zhí)行過程中確認對用戶數(shù)據(jù)進行處理。上文提及,用戶數(shù)據(jù)會放在用戶隊列中,按順序進行處理。因此,當計時器120的計時時長未達到運行時長時,處理器150會判斷當前用戶隊列中是否存在用戶數(shù)據(jù)。當用戶隊列中存在用戶數(shù)據(jù)時,處理器150直接對用戶數(shù)據(jù)進行處理。當用戶隊列中不存在用戶數(shù)據(jù)時,處理器待指定時長后對用戶數(shù)據(jù)再次進行判斷。此處的指定時長可以是設置的任意時長,但不能超出腳本進程的運行時長。若該腳本進程已運行一段時間,則在計時器的基礎上,加上指定時長,也不能超出腳本進程的運行時長。若超出,則該腳本進程就退出運行狀態(tài),不再處理數(shù)據(jù),無須再進行用戶數(shù)據(jù)的判斷??蛇x的,本發(fā)明實施例提供的進程運行裝置設置在Cron定時腳本任務中,利用Cron腳本任務實現(xiàn)對腳本進程(例如PHP腳本)的調(diào)度和應用。目前,360開放平臺的消息系統(tǒng),為千萬級的用戶提供消息服務。由于用戶數(shù)巨大,為了讓全部用戶能在短時間內(nèi)收到消息,必須采用多個進程來處理消息下發(fā)。消息下發(fā)模塊使用的PHP腳本,當然如果用C語言來實現(xiàn),效率會更高。單個PHP腳本所能處理的用戶數(shù)為5萬/秒,利用Cron計劃任務定時啟動多個PHP腳本并行處理,將大大提高消息下發(fā)速度,同時也保證了消息服務的穩(wěn)定性。另外,若設置每個PHP腳本最大運行時間為10分鐘,意味著10分鐘后,該腳本將終止,當前進程退出,從而保證了內(nèi)存不泄漏。圖2示出了根據(jù)本發(fā)明的一個實施例的PHP模擬守護進程的流程圖。參見圖2,該流程起始于在Cron計劃任務中里配置定時任務。定時任務配置結束后,系統(tǒng)每分鐘執(zhí)行一個PHP腳本。當每個PHP腳本執(zhí)行時長超過10分鐘,自動銷毀該進程,PHP腳本終止。而在腳本進程執(zhí)行過程中,會判斷用戶隊列中是否有用戶數(shù)據(jù),沒有則等待(sleep) I秒再執(zhí)行判斷PHP腳本,如此循環(huán)執(zhí)行下去,直至超時退出。圖3示出根據(jù)本發(fā)明的一個實施例的進程運行方法的流程圖。參見圖3,該流程起始于步驟S302。在步驟S302中,對每個腳本進程的運行時間進行計時。其中,步驟S302中提及的多個腳本進程并行處理,提高腳本進程處理的速度。其中,預設每個腳本進程的運行時長均是預設好的,例如預設為10分鐘。每個腳本進程的運行時長可以相同,也可以不同。當每個腳本進程的運行時長相同時,例如可以設置每個腳本進程的運行時長均為10分鐘。當每個腳本進程的運行時長不同時,則例如可以設置第一個腳本進程的運行時長為10分鐘,而第二個腳本進程的運行時長為20分鐘,等等。可選的,可以設置10個腳本進程同時并行處理。當然,此處的10個腳本僅僅是一個優(yōu)選的實施例,在實施過程中,可以根據(jù)具體情況確定腳本的數(shù)量,該數(shù)量通常取決于客戶端的資源剩余量以及每條腳本進程所占用的資源多少。例如,若客戶端的資源大多空閑,則可以執(zhí)行幾十甚至上百個腳本進程,但是,若客戶端的資源較為緊張,則可能只能執(zhí)行幾個腳本進程。當步驟S302中的其中任意一個腳本進程的計時時長達到為該腳本進程設置的運行時長時,啟動步驟S304,S卩,退出該腳本進程,并觸發(fā)新的腳本進程運行。在本例中,為了使得計時效果精確,并能夠及時的觸發(fā)腳本進程的退出流程,考慮使用計時器對各腳本進程進行計時。對任意一個腳本進程而言,當計時器計時結束(即達到該腳本進程的計時時長),可以通知客戶端的控制模塊或管理模塊,令其結束該腳本進程,或者,也可以由該計時器觸發(fā)該腳本進程自動退出。圖4示出了根據(jù)本發(fā)明的一個實施例的進程運行的另外一種流程圖。參見圖4,步驟S304在實施時,當退出當前腳本進程之后,還可以執(zhí)行步驟S306,銷毀當前已退出的腳本進程。在本例中,采用銷毀當前腳本進程的操作,能夠釋放本運行的腳本進程占用的資源,進而提高系統(tǒng)資源的利用率,同時避免了因長期運行可能導致的內(nèi)存泄漏的問題。實施時,可能會腳本進程中斷的意外情況,例如,可能會因操作系統(tǒng)重啟導致腳本進程中斷,再例如,還可能會因守護進程意外中斷導致腳本進程中斷時,再例如,還可能因新的腳本進程或守護進程需要占用大量資源從而導致腳本進程被迫中斷的。相應的,本例中提供了對于腳本進程意外中斷的情況的處理方式。圖5示出了根據(jù)本發(fā)明的一個實施例的腳本進程意外中斷的處理方式,包括步驟S502至步驟S504。步驟S502、當腳本進程意外中斷時,繼續(xù)對中斷的每個腳本進程繼續(xù)的計時操作。步驟S504、當任意一個腳本進程的計時時長達到運行時長時,該腳本進程退出該腳本進程,并觸發(fā)新的腳本進程運行。值得說明的是,步驟S504中的腳本進程退出運行后,若出于提高系統(tǒng)資源利用率的目的,該腳本進程也應該被銷毀,將其占用的資源釋放出來,以便于新的腳本進程使用。參照圖5所示的方法,雖然因操作系統(tǒng)重啟或守護進程意外中斷導致腳本進程中斷,但是,計時操作仍在進行。在計時時長達到一定的閾值時,會觸發(fā)新的腳本進程運行,為用戶提供服務,不會因意外情況導致服務中斷,提高了用戶的感受體驗。腳本進程被創(chuàng)建之后,若沒有被中斷或銷毀,則該腳本進程處于執(zhí)行過程或者稱為運行狀態(tài)。在本例中,對任意一個腳本進程而言,當該腳本進程的計時時長未達到運行時長時,即該腳本進程處于運行狀態(tài),則對該腳本進程的處理對象進行判斷,判斷其是否是處于工作狀態(tài)還是閑置。具體的,判斷當前用戶隊列中是否存在用戶數(shù)據(jù),若是,則對用戶數(shù)據(jù)進行處理,若否,則待指定時長后重新判斷??蛇x的,指定時長可以設置為I秒。綜上,本發(fā)明實施例達到如下有益效果在一個實施例中,設置多個腳本進程并行處理,相對于現(xiàn)有技術的用戶放在一個隊列中的情況能夠大大加快應用處理的速度。特別在網(wǎng)絡應用的用戶較多時,多個腳本進程的并行處理能夠提高處理速度,提高用戶的感受體驗。在一個實施例中,利用計時器對每個腳本進程進行計時,當計時器的計時時長達到該腳本進程的運行時長時,觸發(fā)器就會觸發(fā)新的操作,觸發(fā)當前腳本進程退出,并觸發(fā)新的腳本進程運行。由此可見,本發(fā)明中的腳本進程是持續(xù)更新啟動的,保證了有一定數(shù)量的腳本進程處于運行狀態(tài)的,即使操作系統(tǒng)重啟或者守護進程意外中斷,觸發(fā)器也會在計時到達的情況下觸發(fā)新的腳本進程運行,不會造成服務中斷。在一個實施例中,由于每個腳本進程的運行時間是設定的,計時器計時到達則觸發(fā)器觸發(fā)該腳本進程退出運行狀態(tài),由此可見,每個腳本進程的運行時間較短,即使該腳本進程的代碼存在內(nèi)存泄漏的情況,也不會因長時間運轉(zhuǎn)導致問題放大,從而避免了系統(tǒng)崩潰的情況。在此提供的算法和顯示不與任何特定計算機、虛擬系統(tǒng)或者其它設備固有相關。各種通用系統(tǒng)也可以與基于在此的示教一起使用。根據(jù)上面的描述,構造這類系統(tǒng)所要求的結構是顯而易見的。此外,本發(fā)明也不針對任何特定編程語言。應當明白,可以利用各種編程語言實現(xiàn)在此描述的本發(fā)明的內(nèi)容,并且上面對特定語言所做的描述是為了披露本發(fā)明的最佳實施方式。在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下實踐。在一些實例中,并未詳細示出公知的方法、結構和技術,以便不模糊對本說明書的理解。類似地,應當理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應將該公開的方法解釋成反映如下意圖即所要求保護的本發(fā)明要求比在每個權利要求中所明確記載的特征更多的特征。更確切地說,如下面的權利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式
的權利要求書由此明確地并入該具體實施方式
,其中每個權利要求本身都作為本發(fā)明的單獨實施例。本領域那些技術人員可以理解,可以對實施例中的設備中的模塊進行自適應性地改變并且把它們設置在與該實施例不同的一個或多個設備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。此外,本領域的技術人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。本發(fā)明的各個部件實施例可以以硬件實現(xiàn),或者以在一個或者多個處理器上運行的軟件模塊實現(xiàn),或者以它們的組合實現(xiàn)。本領域的技術人員應當理解,可以在實踐中使用微處理器或者數(shù)字信號處理器(DSP )來實現(xiàn)根據(jù)本發(fā)明實施例的進程運行設備中的一些或者全部部件的一些或者全部功能。本發(fā)明還可以實現(xiàn)為用于執(zhí)行這里所描述的方法的一部分或者全部的設備或者裝置程序(例如,計算機程序和計算機程序產(chǎn)品)。這樣的實現(xiàn)本發(fā)明的程序可以存儲在計算機可讀介質(zhì)上,或者可以具有一個或者多個信號的形式。這樣的信號可以從因特網(wǎng)網(wǎng)站上下載得到,或者在載體信號上提供,或者以任何其他形式提供。應該注意的是上述實施例對本發(fā)明進行說明而不是對本發(fā)明進行限制,并且本領域技術人員在不脫離所附權利要求的范圍的情況下可設計出替換實施例。在權利要求中,不應將位于括號之間的任何參考符號構造成對權利要求的限制。單詞“包含”不排除存在未列在權利要求中的元件或步驟。位于元件之前的單詞“一”或“一個”不排除存在多個這樣的元件。本發(fā)明可以借助于包括有若干不同元件的硬件以及借助于適當編程的計算機來實現(xiàn)。在列舉了若干裝置的單元權利要求中,這些裝置中的若干個可以是通過同一個硬件項來具體體現(xiàn)。單詞第一、第二、以及第三等的使用不表示任何順序??蓪⑦@些單詞解釋為名稱。
權利要求
1.一種進程運行裝置,包括定時器,配置為定制多個腳本進程的運行時長,其中,所述多個腳本進程并行處理;計時器,配置為對每個腳本進程的運行時間進行計時;觸發(fā)器,配置為對于任意一個腳本進程,當所述計時器的計時時長達到該腳本進程的運行時長時,退出該計時器對應的腳本進程,觸發(fā)新的腳本進程運行。
2.根據(jù)權利要求1所述的裝置,其特征在于,還包括銷毀器,配置為銷毀退出的腳本進程。
3.根據(jù)權利要求1或2所述的裝置,其特征在于,所述計時器還配置為在操作系統(tǒng)重啟或者守護進程意外中斷導致腳本進程中斷時,針對中斷的腳本進程繼續(xù)進行計時,直至到達所述運行時長。
4.根據(jù)權利要求1至3任一項所述的裝置,其特征在于,所述裝置還包括處理器,配置為所述計時器的計時時長未達到所述運行時長時,判斷當前用戶隊列中是否存在用戶數(shù)據(jù),若是,則對用戶數(shù)據(jù)進行處理,若否,則待指定時長后對用戶數(shù)據(jù)再次進行判斷。
5.根據(jù)權利要求1至4任一項所述的裝置,其特征在于,所述裝置設置在Cron定時腳本任務中。
6.一種進程運行方法,包括對每個腳本進程的運行時間進行計時,其中,多個腳本進程并行處理,且預設每個腳本進程的運行時長;當其中任意一個腳本進程的計時時長達到為該腳本進程設置的運行時長時,退出該腳本進程,并觸發(fā)新的腳本進程運行。
7.根據(jù)權利要求6所述的方法,其特征在于,所述退出當前腳本進程之后,還包括銷毀所述當前腳本進程。
8.根據(jù)權利要求6或7所述的方法,其特征在于,還包括在操作系統(tǒng)重啟或者守護進程意外中斷導致腳本進程中斷時,繼續(xù)對中斷的所述每個腳本進程繼續(xù)的計時操作;以及當任意一個腳本進程的計時時長達到所述運行時長時,該腳本進程退出該腳本進程, 并觸發(fā)新的腳本進程運行。
9.根據(jù)權利要求6至8任一項所述的方法,其特征在于,當其中任意一個腳本進程的計時時長未達到所述運行時長時,判斷當前用戶隊列中是否存在用戶數(shù)據(jù),若是,則對用戶數(shù)據(jù)進行處理,若否,則待指定時長后重新判斷。
10.根據(jù)權利要求9所述的方法,其特征在于,所述指定時長為I秒。
11.根據(jù)權利要求6至10任一項所述的方法,其特征在于,所述每個腳本進程的運行時長相同或不同。
12.根據(jù)權利要求11所述的方法,其特征在于,當所述每個腳本進程的運行時長相同時,設置所述每個腳本進程的運行時長為10分鐘。
13.根據(jù)權利要求6至12任一項所述的方法,其特征在于,設置10個腳本同時并行處理。
全文摘要
本發(fā)明公開了一種進程運行裝置,包括定時器,配置為定制多個腳本進程的運行時長,其中,多個腳本進程并行處理;計時器,配置為對每個腳本進程的運行時間進行計時;觸發(fā)器,配置為對任意一個腳本進程而言,當計時器的計時時長達到該腳本進程的運行時長時,退出該計時器對應的腳本進程,觸發(fā)新的腳本進程運行。本發(fā)明還公開了一種相應的進程運行方法。采用本發(fā)明能夠解決因操作系統(tǒng)或守護進程中斷導致的網(wǎng)絡應用服務中斷的技術問題。
文檔編號G06F9/48GK102999387SQ20121044770
公開日2013年3月27日 申請日期2012年11月9日 優(yōu)先權日2012年11月9日
發(fā)明者王博, 吳凱 申請人:北京奇虎科技有限公司, 奇智軟件(北京)有限公司