欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

基于Windows服務(wù)程序的主動(dòng)式緩存方法

文檔序號(hào):6635609閱讀:136來(lái)源:國(guó)知局
基于Windows服務(wù)程序的主動(dòng)式緩存方法
【專(zhuān)利摘要】本發(fā)明涉及一種基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特點(diǎn)是:用戶向網(wǎng)站服務(wù)器端的頁(yè)面發(fā)送請(qǐng)求頁(yè)面,通過(guò)網(wǎng)站服務(wù)器端判斷是否正式獲取到緩存內(nèi)容。其主動(dòng)緩存的實(shí)施過(guò)程為,創(chuàng)建Windows服務(wù)程序,之后創(chuàng)建插入隊(duì)列并創(chuàng)建刷新工作。由此,通過(guò)網(wǎng)站服務(wù)器端的頁(yè)面獲取主動(dòng)緩存進(jìn)行判斷處理,配合Windows服務(wù)程序,讓用戶每次請(qǐng)求頁(yè)面數(shù)據(jù)都從內(nèi)存中獲取,不直接請(qǐng)求數(shù)據(jù)庫(kù)或接口,從而達(dá)到頁(yè)面快速的呈現(xiàn)。同時(shí),在寫(xiě)入成功后能夠進(jìn)行刪除,減輕數(shù)據(jù)庫(kù)壓力,提升了用戶的使用體驗(yàn)。
【專(zhuān)利說(shuō)明】基于Windows服務(wù)程序的主動(dòng)式緩存方法

【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種緩存方法,尤其涉及一種基于Windows服務(wù)程序的主動(dòng)式緩存方法。

【背景技術(shù)】
[0002]關(guān)于主動(dòng)式緩存,一般我們?cè)谑褂镁彺娴臅r(shí)候,會(huì)設(shè)定一個(gè)緩存數(shù)據(jù)的有效時(shí)間,超過(guò)這個(gè)時(shí)間后緩存數(shù)據(jù)失效,應(yīng)用必須重新填充緩存數(shù)據(jù)。而在Web項(xiàng)目中更是如此,訪問(wèn)數(shù)據(jù)時(shí)先訪問(wèn)緩存,如果緩存中有,則返回緩存中的數(shù)據(jù),否則重新讀取(可能是從數(shù)據(jù)庫(kù)中)數(shù)據(jù)并塞入緩存,然后返回?cái)?shù)據(jù)。假設(shè)這個(gè)重新讀取數(shù)據(jù)的過(guò)程可能是一個(gè)非常耗時(shí)的過(guò)程,那么每次緩存失效的時(shí)候,用戶訪問(wèn)就會(huì)非常的慢,再次訪問(wèn)速度才能變快。
[0003]關(guān)于Memcached,其是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫(kù)負(fù)載。它通過(guò)在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來(lái)減少讀取數(shù)據(jù)庫(kù)的次數(shù),從而提高動(dòng)態(tài)、數(shù)據(jù)庫(kù)驅(qū)動(dòng)網(wǎng)站的速度。Memcached基于一個(gè)存儲(chǔ)鍵/值對(duì)的hashmap。其守護(hù)進(jìn)程(daemon )是用C寫(xiě)的,但是客戶端可以用任何語(yǔ)言來(lái)編寫(xiě),并通過(guò)memcached協(xié)議與守護(hù)進(jìn)程通信。
[0004]Quartz是一個(gè)完全由java編寫(xiě)的開(kāi)源作業(yè)調(diào)度框架。Quartz.NET是一個(gè)開(kāi)源的作業(yè)調(diào)度框架,是OpenSymphony的Quartz API的.NET移植,它用C#寫(xiě)成,可用于winform和asp.net應(yīng)用中。它有很多特征,如:數(shù)據(jù)庫(kù)支持,集群,插件,支持cron-like表達(dá)式等坐寸ο
[0005]Microsoft Windows服務(wù)(即,以前的NT服務(wù))使您能夠創(chuàng)建在它們自己的Windows會(huì)話中可長(zhǎng)時(shí)間運(yùn)行的可執(zhí)行應(yīng)用程序。這些服務(wù)可以在計(jì)算機(jī)啟動(dòng)時(shí)自動(dòng)啟動(dòng),可以暫停和重新啟動(dòng)而且不顯示任何用戶界面。這使服務(wù)非常適合在服務(wù)器上使用,或任何時(shí)候,為了不影響在同一臺(tái)計(jì)算機(jī)上工作的其他用戶,需要長(zhǎng)時(shí)間運(yùn)行功能時(shí)使用。還可以在不同于登錄用戶的特定用戶帳戶或默認(rèn)計(jì)算機(jī)帳戶的安全上下文中運(yùn)行服務(wù)。


【發(fā)明內(nèi)容】

[0006]本發(fā)明的目的就是為了解決現(xiàn)有技術(shù)中存在的上述問(wèn)題,提供一種基于Windows服務(wù)程序的主動(dòng)式緩存方法。
[0007]本發(fā)明的目的通過(guò)以下技術(shù)方案來(lái)實(shí)現(xiàn):
基于Windows服務(wù)程序的主動(dòng)式緩存方法,其包括以下步驟:首先,用戶向網(wǎng)站服務(wù)器端的頁(yè)面發(fā)送請(qǐng)求頁(yè)面;之后,網(wǎng)站服務(wù)器端的頁(yè)面獲取主動(dòng)緩存后,判斷是否正式獲取到緩存內(nèi)容,若是,則輸出頁(yè)面的html內(nèi)容,若否,則異步發(fā)送接口請(qǐng)求,將當(dāng)前用戶請(qǐng)求的url地址插入到數(shù)據(jù)庫(kù)表中,所述主動(dòng)緩存的實(shí)施過(guò)程為,首先創(chuàng)建Windows服務(wù)程序,之后創(chuàng)建插入隊(duì)列并創(chuàng)建刷新工作,所述的插入列隊(duì)內(nèi)容包括主鍵ID、url地址、緩存。
[0008]上述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其中:所述的創(chuàng)建插入隊(duì)列的過(guò)程為,步驟①,通過(guò)Windows服務(wù)程序查詢(xún)緩存列表,判斷用于存放url地址的緩存表是否有數(shù)據(jù),若有,則進(jìn)入步驟②,若無(wú),則將未查詢(xún)到的數(shù)據(jù)進(jìn)行日志記錄,所述的日志記錄為,將日志信息插入到數(shù)據(jù)庫(kù)日志表中,所述的日志包含,job名稱(chēng)、日志類(lèi)型、日志內(nèi)容(主要包含url地址)、日志時(shí)間。步驟②,通過(guò)SQL查詢(xún)獲取cache工作表數(shù)據(jù)。步驟③,根據(jù)ID判斷插入列隊(duì)是否有數(shù)據(jù),若有,則更新隊(duì)列表,若無(wú),則向隊(duì)列表中插入數(shù)據(jù)。
[0009]進(jìn)一步地,上述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其中:所述的創(chuàng)建刷新工作過(guò)程為,步驟①,通過(guò)Windows服務(wù)程序讀取緩存列隊(duì),判斷列隊(duì)中是否有數(shù)據(jù),若有,則執(zhí)行步驟②,若無(wú),則記錄日志,所述的記錄過(guò)程為,插入數(shù)據(jù)庫(kù)日志,且日志基本信息與插入隊(duì)列相同。步驟②,根據(jù)隊(duì)列中的cache Url與cache key,發(fā)送包含post請(qǐng)求的頁(yè)面。步驟③,將頁(yè)面html內(nèi)容寫(xiě)入緩存,判斷是否寫(xiě)入成功,若成功,則刪除列隊(duì),更新緩存表、更新時(shí)間,若失敗,則首先向緩存?zhèn)浞荼聿迦腠?yè)面url,之后刪除列隊(duì),更新緩存表、更新時(shí)間。
[0010]更進(jìn)一步地,上述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其中:步驟③所述的判斷是否寫(xiě)入成功的依據(jù)是塞入緩存時(shí)返回的標(biāo)識(shí)。
[0011]更進(jìn)一步地,上述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其中:步驟③所述的時(shí)間為,緩存表中的下一更新時(shí)間字段。
[0012]更進(jìn)一步地,上述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其中:所述的創(chuàng)建插入隊(duì)列與創(chuàng)建刷新工作,均采用Quartz.Net完成。
[0013]再進(jìn)一步地,上述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其中:所述的刷新為發(fā)送post請(qǐng)求。
[0014]本發(fā)明技術(shù)方案的優(yōu)點(diǎn)主要體現(xiàn)在:通過(guò)上述的文字表述可以看出,采用本發(fā)明后,通過(guò)網(wǎng)站服務(wù)器端的頁(yè)面獲取主動(dòng)緩存進(jìn)行判斷處理,配合Windows服務(wù)程序,讓用戶每次請(qǐng)求頁(yè)面數(shù)據(jù)都從內(nèi)存中獲取,不直接請(qǐng)求數(shù)據(jù)庫(kù)或接口,從而達(dá)到頁(yè)面快速的呈現(xiàn)。同時(shí),在寫(xiě)入成功后能夠進(jìn)行刪除,減輕數(shù)據(jù)庫(kù)壓力,以此來(lái)提升用戶的使用體驗(yàn)。
[0015]本發(fā)明的目的、優(yōu)點(diǎn)和特點(diǎn),將通過(guò)下面優(yōu)選實(shí)施例的非限制性說(shuō)明進(jìn)行圖示和解釋。這些實(shí)施例僅是應(yīng)用本發(fā)明技術(shù)方案的典型范例,凡采取等同替換或者等效變換而形成的技術(shù)方案,均落在本發(fā)明要求保護(hù)的范圍之內(nèi)。

【專(zhuān)利附圖】

【附圖說(shuō)明】
[0016]圖1是本基于Windows服務(wù)程序的主動(dòng)式緩存方法的整體流程示意圖。
[0017]圖2是創(chuàng)建插入隊(duì)列的過(guò)程示意圖。
[0018]圖3是創(chuàng)建刷新工作過(guò)程的實(shí)施示意圖。

【具體實(shí)施方式】
[0019]如圖1?3所示的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其與眾不同之處在于包括以下步驟:首先,用戶向網(wǎng)站服務(wù)器端的頁(yè)面發(fā)送請(qǐng)求頁(yè)面。之后,網(wǎng)站服務(wù)器端的頁(yè)面獲取主動(dòng)緩存后,判斷是否正式獲取到緩存內(nèi)容。具體來(lái)說(shuō),若是,則輸出頁(yè)面的html內(nèi)容,若否,則異步發(fā)送接口請(qǐng)求,將當(dāng)前用戶請(qǐng)求的url地址插入到數(shù)據(jù)庫(kù)表中。同時(shí),本發(fā)明所采用的主動(dòng)緩存的實(shí)施過(guò)程為,先創(chuàng)建Windows服務(wù)程序,之后創(chuàng)建插入隊(duì)列并創(chuàng)建刷新工作,該插入列隊(duì)內(nèi)容包括主鍵ID、url地址、緩存。
[0020]就本發(fā)明一較佳的實(shí)施方式來(lái)看,為了有效利用Windows服務(wù)程序的資源,如圖2所示,采用的創(chuàng)建插入隊(duì)列的過(guò)程為:
首先,通過(guò)Windows服務(wù)程序查詢(xún)緩存列表,判斷用于存放url地址的緩存表是否有數(shù)據(jù)。若有,則進(jìn)入后續(xù)步驟。若無(wú),則將未查詢(xún)到的數(shù)據(jù)進(jìn)行日志記錄。同時(shí),考慮到緩存數(shù)據(jù)的合理有效,采用的日志記錄為,將日志信息插入到數(shù)據(jù)庫(kù)日志表中,該日志包含,job名稱(chēng)、日志類(lèi)型、日志內(nèi)容(主要包含url地址)、日志時(shí)間。之后,通過(guò)SQL查詢(xún)獲取cache工作表數(shù)據(jù)。接著,可以根據(jù)ID判斷插入列隊(duì)是否有數(shù)據(jù)。若有,則更新隊(duì)列表。若無(wú),則向隊(duì)列表中插入數(shù)據(jù)。
[0021]進(jìn)一步結(jié)合圖3來(lái)看,創(chuàng)建刷新工作過(guò)程如下:首先,通過(guò)Windows服務(wù)程序讀取緩存列隊(duì),判斷列隊(duì)中是否有數(shù)據(jù)。在此期間,若有,則執(zhí)行后續(xù)步驟若無(wú),則記錄日志。具體來(lái)說(shuō),記錄過(guò)程為,插入數(shù)據(jù)庫(kù)日志,且日志基本信息與插入隊(duì)列相同。之后,根據(jù)隊(duì)列中的cache Url與cache key (數(shù)據(jù)庫(kù)隊(duì)列表的字段),發(fā)送包含post請(qǐng)求的頁(yè)面。最后,將頁(yè)面html內(nèi)容寫(xiě)入緩存(Memcache),判斷是否寫(xiě)入成功,若成功,則刪除列隊(duì),更新緩存表、更新時(shí)間,若失敗,則首先向緩存?zhèn)浞荼聿迦腠?yè)面url,之后刪除列隊(duì),更新緩存表、更新時(shí)間。
[0022]本發(fā)明采用的緩存Memcached是一個(gè)高性能的分布式內(nèi)存對(duì)象緩存系統(tǒng),用于動(dòng)態(tài)Web應(yīng)用以減輕數(shù)據(jù)庫(kù)負(fù)載。它通過(guò)在內(nèi)存中緩存數(shù)據(jù)和對(duì)象來(lái)減少讀取數(shù)據(jù)庫(kù)的次數(shù),從而提高動(dòng)態(tài)、數(shù)據(jù)庫(kù)驅(qū)動(dòng)網(wǎng)站的速度。并且,緩存?zhèn)浞荼碇写娣诺捻?yè)面Url與緩存表存放內(nèi)容一致,當(dāng)執(zhí)行前序步驟中將頁(yè)面html內(nèi)容寫(xiě)入緩存時(shí),寫(xiě)入過(guò)程中可能會(huì)出現(xiàn)寫(xiě)入失敗情況,這個(gè)時(shí)候會(huì)將url插入到緩存?zhèn)浞荼?,?xiě)入后的過(guò)程與先前執(zhí)行的步驟相同。
[0023]再進(jìn)一步來(lái)看,判斷是否寫(xiě)入成功的依據(jù)是塞入緩存時(shí)返回的標(biāo)識(shí)。這樣,能夠?qū)崿F(xiàn)有效的備份作用。例如,有100個(gè)url做寫(xiě)入操作,有10個(gè)為失敗狀態(tài),失敗的10個(gè)通過(guò)標(biāo)識(shí)可以區(qū)分出來(lái),寫(xiě)入單獨(dú)的緩存?zhèn)浞荼?,重?fù)先前的操作,可以使最終失敗的數(shù)量降低。同時(shí),所涉及的時(shí)間含義為緩存表中的下一更新時(shí)間字段。并且,創(chuàng)建插入隊(duì)列與創(chuàng)建刷新工作,均采用Quartz.Net完成。同時(shí),刷新為發(fā)送post請(qǐng)求。
[0024]通過(guò)上述的文字表述可以看出,采用本發(fā)明后,通過(guò)網(wǎng)站服務(wù)器端的頁(yè)面獲取主動(dòng)緩存進(jìn)行判斷處理,配合Windows服務(wù)程序,讓用戶每次請(qǐng)求頁(yè)面數(shù)據(jù)都從內(nèi)存中獲取,不直接請(qǐng)求數(shù)據(jù)庫(kù)或接口,從而達(dá)到頁(yè)面快速的呈現(xiàn)。同時(shí),在寫(xiě)入成功后能夠進(jìn)行刪除,減輕數(shù)據(jù)庫(kù)壓力,以此來(lái)提升用戶的使用體驗(yàn)。
【權(quán)利要求】
1.基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特征在于包括以下步驟:首先,用戶向網(wǎng)站服務(wù)器端的頁(yè)面發(fā)送請(qǐng)求頁(yè)面;之后,網(wǎng)站服務(wù)器端的頁(yè)面獲取主動(dòng)緩存后,判斷是否正式獲取到緩存內(nèi)容,若是,則輸出頁(yè)面的html內(nèi)容,若否,則異步發(fā)送接口請(qǐng)求,將當(dāng)前用戶請(qǐng)求的url地址插入到數(shù)據(jù)庫(kù)表中,所述主動(dòng)緩存的實(shí)施過(guò)程為,首先創(chuàng)建Windows服務(wù)程序,之后創(chuàng)建插入隊(duì)列并創(chuàng)建刷新工作,所述的插入列隊(duì)內(nèi)容包括主鍵ID、url地址、緩存。
2.根據(jù)權(quán)利要求1所述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特征在于:所述的創(chuàng)建插入隊(duì)列的過(guò)程為, 步驟①,通過(guò)Windows服務(wù)程序查詢(xún)緩存列表,判斷用于存放url地址的緩存表是否有數(shù)據(jù),若有,則進(jìn)入步驟②,若無(wú),則將未查詢(xún)到的數(shù)據(jù)進(jìn)行日志記錄,所述的日志記錄為,將日志信息插入到數(shù)據(jù)庫(kù)日志表中,所述的日志包含,job名稱(chēng)、日志類(lèi)型、日志內(nèi)容、日志時(shí)間; 步驟②,通過(guò)SQL查詢(xún)獲取cache工作表數(shù)據(jù); 步驟③,根據(jù)ID判斷插入列隊(duì)是否有數(shù)據(jù),若有,則更新隊(duì)列表,若無(wú),則向隊(duì)列表中插入數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特征在于:所述的創(chuàng)建刷新工作過(guò)程為, 步驟①,通過(guò)Windows服務(wù)程序讀取緩存列隊(duì),判斷列隊(duì)中是否有數(shù)據(jù),若有,則執(zhí)行步驟②,若無(wú),則記錄日志,所述的記錄過(guò)程為,插入數(shù)據(jù)庫(kù)日志,且日志基本信息與插入隊(duì)列相同; 步驟②,根據(jù)隊(duì)列中的cache Url與cache key,發(fā)送包含post請(qǐng)求的頁(yè)面; 步驟③,將頁(yè)面html內(nèi)容寫(xiě)入緩存,判斷是否寫(xiě)入成功,若成功,則刪除列隊(duì),更新緩存表、更新時(shí)間,若失敗,則首先向緩存?zhèn)浞荼聿迦腠?yè)面url,之后刪除列隊(duì),更新緩存表、更新時(shí)間。
4.根據(jù)權(quán)利要求3所述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特征在于:步驟③所述的判斷是否寫(xiě)入成功的依據(jù)是塞入緩存時(shí)返回的標(biāo)識(shí)。
5.根據(jù)權(quán)利要求1所述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特征在于:步驟③所述的時(shí)間為,緩存表中的下一更新時(shí)間字段。
6.根據(jù)權(quán)利要求1所述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特征在于:所述的創(chuàng)建插入隊(duì)列與創(chuàng)建刷新工作,均采用Quartz.Net完成。
7.根據(jù)權(quán)利要求1所述的基于Windows服務(wù)程序的主動(dòng)式緩存方法,其特征在于:所述的刷新為發(fā)送post請(qǐng)求。
【文檔編號(hào)】G06F17/30GK104376097SQ201410683261
【公開(kāi)日】2015年2月25日 申請(qǐng)日期:2014年11月25日 優(yōu)先權(quán)日:2014年11月25日
【發(fā)明者】王專(zhuān), 吳志祥, 吳劍, 張海龍, 馬和平, 郭鳳林, 沈健, 杜寶平, 靳彩娟 申請(qǐng)人:同程網(wǎng)絡(luò)科技股份有限公司
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
伽师县| 大冶市| 宿松县| 绥宁县| 东安县| 罗源县| 深圳市| 遵义市| 宾川县| 延安市| 湖口县| 阿拉善左旗| 滦平县| 扶余县| 静宁县| 绥滨县| 延边| 孝感市| 湾仔区| 兴城市| 邛崃市| 长阳| 洛川县| 高碑店市| 靖江市| 邵武市| 休宁县| 志丹县| 莆田市| 拉萨市| 威海市| 离岛区| 鸡东县| 宿松县| 雅江县| 偏关县| 格尔木市| 武山县| 丹寨县| 宁陵县| 镇平县|