基于多線程異步下載頁面的多服務(wù)器同步方去的制作方法
【專利摘要】本發(fā)明提供一種基于多線程異步下載頁面的多服務(wù)器同步方法,包括以下步驟:基于線程創(chuàng)_規(guī)則創(chuàng)建多個(gè)下載線程;定義各個(gè)下載線程與良效頁面地址的對(duì)應(yīng)關(guān)系;各個(gè)下載線程通過與自身對(duì)應(yīng)的有效頁面地址,讀取到有效頁面,然后導(dǎo)步下載所述有效頁面;各個(gè)所述下載線程通過賣取配置文件,獲得與有效頁面地址對(duì)應(yīng)的同步狠務(wù)器IP和路徑;各個(gè)下載線程將有效頁面同步SJ同步服務(wù)器IP和路徑所表示的同步服務(wù)器上■’當(dāng)任意一個(gè)下載線程執(zhí)行結(jié)束時(shí),下載線程申請(qǐng)吐理下一個(gè)有效頁面,直到?jīng)]有需要處理的有效瓦面時(shí),注銷下載線程。在保證用戶訪問網(wǎng)站速度的同時(shí),還能夠保證各臺(tái)WEB服務(wù)器的同步,從而是高了用戶的訪問體驗(yàn)。
【專利說明】基于多線程異步下載頁面的多服務(wù)器同步方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明屬于通信【技術(shù)領(lǐng)域】,具體涉及一種基于多線程異步下載頁面的多服務(wù)器同 步方法。
【背景技術(shù)】
[0002] 隨著IT的快速發(fā)展,網(wǎng)站發(fā)展迅速,網(wǎng)站訪問量呈指數(shù)性增長(zhǎng),由此導(dǎo)致單一服 務(wù)器無法承擔(dān)巨大的訪問量,從而導(dǎo)致網(wǎng)站訪問速度降低。因此,為提高網(wǎng)站的訪問速度, 現(xiàn)有技術(shù)中,通常采用一個(gè)網(wǎng)站架設(shè)多臺(tái)WEB服務(wù)器,并且,在每一臺(tái)WEB服務(wù)器上運(yùn)行定 時(shí)靜態(tài)化頁面程序,通過定時(shí)靜態(tài)化頁面程序,將重點(diǎn)頁面靜態(tài)化,然后在每一臺(tái)WEB服務(wù) 器上保存靜態(tài)化頁面。
[0003] 上述方式存在的主要問題為:由于各臺(tái)WEB服務(wù)器的時(shí)間存在不一致性現(xiàn)象,因 此,各臺(tái)WEB服務(wù)器所生成的靜態(tài)化頁面存在頁面生成時(shí)間偏差,例如:在同一時(shí)刻,WEB服 務(wù)器A的當(dāng)前設(shè)置時(shí)間為9:00,而WEB服務(wù)器B的當(dāng)前設(shè)置時(shí)間為9:08 ;此時(shí),WEB服務(wù)器 A靜態(tài)化9:00時(shí)的頁面A,得到9:00時(shí)的頁面A ;而WEB服務(wù)器B靜態(tài)化9:08時(shí)的頁面A, 得到9:08時(shí)的頁面A ;而9:00時(shí)的頁面A和9:08時(shí)的頁面A不相同。因此,在同一時(shí)刻, 如果用戶A和用戶B同時(shí)訪問該網(wǎng)站,則存在用戶A和用戶B訪問到不同頁面的情況,從而 降低了用戶的訪問體驗(yàn)。
【發(fā)明內(nèi)容】
[0004] 針對(duì)現(xiàn)有技術(shù)存在的缺陷,本發(fā)明提供一種基于多線程異步下載頁面的多服務(wù)器 同步方法,在保證用戶訪問網(wǎng)站速度的同時(shí),還能夠保證各臺(tái)WEB服務(wù)器的同步,從而提高 了用戶的訪問體驗(yàn)。
[0005] 本發(fā)明采用的技術(shù)方案如下:
[0006] 本發(fā)明提供一種基于多線程異步下載頁面的多服務(wù)器同步方法,包括以下步驟:
[0007] S1,接收配置文件的存儲(chǔ)位置信息;
[0008] S2,根據(jù)接收到的所述存儲(chǔ)位置信息,讀取所述配置文件;其中,所述配置文件已 存儲(chǔ)由一個(gè)以上需要下載的原始頁面地址組成的原始頁面地址列表,還存儲(chǔ)與每個(gè)所述原 始頁面地址對(duì)應(yīng)的一個(gè)以上同步服務(wù)器IP和路徑;
[0009] S3,對(duì)讀取到的所述配置文件進(jìn)行預(yù)處理,得到處理后的新配置文件;其中,所述 新配置文件中存儲(chǔ)由一個(gè)以上需要下載的有效頁面地址組成的有效頁面地址列表,還存儲(chǔ) 與每個(gè)所述有效頁面地址對(duì)應(yīng)的一個(gè)以上同步服務(wù)器IP和路徑;
[0010] S4,計(jì)算所述有效頁面地址列表中存儲(chǔ)的有效頁面地址數(shù)量,然后基于線程創(chuàng)建 規(guī)則創(chuàng)建多個(gè)下載線程;
[0011] S5,定義各個(gè)所述下載線程與所述有效頁面地址的對(duì)應(yīng)關(guān)系;
[0012] S6,各個(gè)所述下載線程通過與自身對(duì)應(yīng)的有效頁面地址,讀取到有效頁面,然后異 步下載所述有效頁面;
[0013] S7,各個(gè)所述下載線程通過讀取所述配置文件,獲得與所述有效頁面地址對(duì)應(yīng)的 同步服務(wù)器IP和路徑;
[0014] S8,各個(gè)所述下載線程將S6得到的所述有效頁面同步到S7獲得的同步服務(wù)器IP 和路徑所表示的同步服務(wù)器上;
[0015] 當(dāng)任意一個(gè)所述下載線程執(zhí)行S8結(jié)束時(shí),所述下載線程申請(qǐng)?zhí)幚硐乱粋€(gè)有效頁 面,直到?jīng)]有需要處理的有效頁面時(shí),注銷所述下載線程。
[0016] 優(yōu)選的,S3中,對(duì)讀取到的所述配置文件進(jìn)行預(yù)處理,具體為:
[0017] 對(duì)讀取到的所述配置文件進(jìn)行過濾操作。
[0018] 優(yōu)選的,對(duì)讀取到的所述配置文件進(jìn)行過濾操作,具體為:
[0019] 判斷各個(gè)所述原始頁面地址是否為合法的地址鏈接,如果存在不合法的地址鏈 接,則刪除所述不合法的地址鏈接;和/或
[0020] 判斷所述配置文件中是否存在說明性文字;如果存在,則刪除所述說明性文字; 和/或
[0021] 判斷所述配置文件中是否存在相同的原始頁面地址與同步服務(wù)器IP和路徑對(duì)應(yīng) 關(guān)系;如果存在,則刪除重復(fù)的所述原始頁面地址與同步服務(wù)器IP和路徑對(duì)應(yīng)關(guān)系。
[0022] 優(yōu)選的,S6中,指定下載線程異步下載指定有效頁面具體為:
[0023] 所述指定下載線程向指定頁面服務(wù)器發(fā)送下載請(qǐng)求消息;然后判斷是否在預(yù)定時(shí) 間間隔內(nèi)收到所述指定頁面服務(wù)器返回的下載響應(yīng)消息,如果收到,則繼續(xù)后續(xù)流程;如果 沒有收到,則注銷所述指定下載線程。
[0024] 優(yōu)選的,S8中,特定下載線程將特定有效頁面同步到特定同步服務(wù)器上,具體為:
[0025] 在前一時(shí)刻,所述特定下載線程下載所述特定有效頁面地址所代表的有效頁面 P1 ;然后將所述有效頁面P1以文件名X保存到所述特定同步服務(wù)器上;
[0026] 在當(dāng)前時(shí)刻,所述特定下載線程下載所述特定有效頁面地址所代表的有效頁面 P2 ;然后,首先將所述有效頁面P2以文件名Y寫入所述特定同步服務(wù)器上;再用所述有效 頁面P2替換所述有效頁面P1 ;其中,文件名X與文件名Y不相同。
[0027] 優(yōu)選的,S8,特定下載線程將特定有效頁面同步到特定同步服務(wù)器上,具體為:
[0028] 所述特定下載線程首先判斷所述特定有效頁面是否為只讀屬性;如果是,則將所 述特定有效頁面的只讀屬性改為非只讀屬性之后,再將非只讀屬性的所述特定有效頁面同 步到特定同步服務(wù)器上。
[0029] 本發(fā)明的有益效果如下:
[0030] 本發(fā)明提供的基于多線程異步下載頁面的多服務(wù)器同步方法,在保證用戶訪問網(wǎng) 站速度的同時(shí),還能夠保證各臺(tái)WEB服務(wù)器的同步,從而提高了用戶的訪問體驗(yàn)。
【專利附圖】
【附圖說明】
[0031] 圖1為本發(fā)明提供的基于多線程異步下載頁面的多服務(wù)器同步方法的流程示意 圖。
【具體實(shí)施方式】
[0032] 以下結(jié)合附圖對(duì)本發(fā)明進(jìn)行詳細(xì)說明:
[0033] 如圖1所示,本發(fā)明提供一種基于多線程異步下載頁面的多服務(wù)器同步方法,包 括以下步驟:
[0034] S1,接收配置文件的存儲(chǔ)位置信息;
[0035] S2,根據(jù)接收到的所述存儲(chǔ)位置信息,讀取所述配置文件;其中,所述配置文件已 存儲(chǔ)由一個(gè)以上需要下載的原始頁面地址組成的原始頁面地址列表,還存儲(chǔ)與每個(gè)所述原 始頁面地址對(duì)應(yīng)的一個(gè)以上同步服務(wù)器IP和路徑;
[0036] 例如:原始頁面地址可以為頁面URL地址。配置文件可以為txt文件,每一行為一 個(gè)配置,頁面URL地址和需要同步的同步服務(wù)器IP和路徑之間用空格分割,各個(gè)同步服務(wù) 器IP和路徑用英文逗號(hào)分割。如:
[0037] http://rn.autohome.com.cn/ashx/baidu/BookList.ashx ? count = 200\\10. 168. 0. 120\d$\m. autohome. com. cn\includeFile\baidu\dealer\datalist. xml, \\10. 168. 0. 166\d$\m. autohome. com. cn\includeFile\baidu\dealer\datalist. xml
[0038] 其中,http://m. autohome· com. cn/ashx/baidu/BookList. ashx ? count = 200 為頁面 URL 地址;\\10. 168. 0· 120\d$\m. autohome· com. cn\includeFile\baidu\dealer\ datalist. xml 為一個(gè)需要同步的服務(wù)器絕對(duì)路徑;\\10· 168. 0· 166\d$\m. autoho me. com. cn\include File\baidu\dealer\datalist. xml為另一個(gè)需要同步的服務(wù)器絕對(duì)路徑。
[0039] S3,對(duì)讀取到的所述配置文件進(jìn)行預(yù)處理,得到處理后的新配置文件;其中,所述 新配置文件中存儲(chǔ)由一個(gè)以上需要下載的有效頁面地址組成的有效頁面地址列表,還存儲(chǔ) 與每個(gè)所述有效頁面地址對(duì)應(yīng)的一個(gè)以上同步服務(wù)器IP和路徑;具體的,本發(fā)明中,有效 頁面地址和同步服務(wù)器IP和路徑為一對(duì)多關(guān)系。
[0040] 實(shí)際應(yīng)用中,可以利用.Net內(nèi)部對(duì)象StreamReader讀取配置文件內(nèi)容,然后將讀 取到的配置文件放入固定容器中,對(duì)配置文件進(jìn)行過濾和去重操作。
[0041] 其中,過濾操作具體包括以下兩種方式:(1)判斷各個(gè)原始頁面地址是否為合法 的地址鏈接,如果存在不合法的地址鏈接,則刪除不合法的地址鏈接。(2)判斷配置文件中 是否存在說明性文字;如果存在,則刪除說明性文字。
[0042] 去重操作具體包括以下方式:判斷配置文件中是否存在相同的原始頁面地址與同 步服務(wù)器IP和路徑對(duì)應(yīng)關(guān)系;如果存在,則刪除重復(fù)的原始頁面地址與同步服務(wù)器IP和路 徑對(duì)應(yīng)關(guān)系。
[0043] 對(duì)于去重操作,具體還包括兩種方式:(1)原始頁面地址與同步服務(wù)器IP和路徑 完全相同。例如:配置文件記載以下兩條對(duì)應(yīng)關(guān)系:一、頁面地址http://autohome. com. cn 對(duì)應(yīng)同步服務(wù)器1、同步服務(wù)器2和同步服務(wù)器3 ;二、頁面地址http://autohome. com. cn 對(duì)應(yīng)同步服務(wù)器1、同步服務(wù)器2和同步服務(wù)器3。則這兩條對(duì)應(yīng)關(guān)系完全相同,需要?jiǎng)h除 其中任意一條對(duì)應(yīng)關(guān)系。(2)相同的原始頁面地址對(duì)應(yīng)部分相同的同步服務(wù)器IP和路徑。 例如:配置文件記載以下兩條對(duì)應(yīng)關(guān)系:對(duì)應(yīng)1 :頁面地址http://autohome. com. cn對(duì)應(yīng) 同步服務(wù)器1、同步服務(wù)器2和同步服務(wù)器3 ;對(duì)應(yīng)2 :頁面地址http://autohome. com. cn 對(duì)應(yīng)同步服務(wù)器2、同步服務(wù)器3和同步服務(wù)器4。由于存在相同的以下對(duì)應(yīng)關(guān)系:頁面地 址http://autohome. com. cn對(duì)應(yīng)同步服務(wù)器2和同步服務(wù)器3。所以,需要?jiǎng)h除對(duì)應(yīng)1或 對(duì)應(yīng)2中的同步服務(wù)器2和同步服務(wù)器3。
[0044] 通過上述對(duì)配置文件的預(yù)處理,可以簡(jiǎn)化后續(xù)異步下載和同步時(shí)的工作復(fù)雜度, 簡(jiǎn)化異步下載和同步的步驟,提高異步下載和同步的效率。
[0045] S4,計(jì)算所述有效頁面地址列表中存儲(chǔ)的有效頁面地址數(shù)量,然后基于線程創(chuàng)建 規(guī)則創(chuàng)建多個(gè)下載線程。本步驟中,線程創(chuàng)建規(guī)則可以為:設(shè)置最大線程創(chuàng)建數(shù),如果最大 線程創(chuàng)建數(shù)大于有效頁面地址數(shù)量,例如:最大線程創(chuàng)建數(shù)為20個(gè),有效頁面地址數(shù)量為 15個(gè),則創(chuàng)建與有效頁面地址數(shù)量相同的下載線程,S卩,需要?jiǎng)?chuàng)建15個(gè)下載線程,一個(gè)下載 線程處理一個(gè)有效頁面。如果最大線程創(chuàng)建數(shù)小于有效頁面地址數(shù)量,例如:最大線程創(chuàng)建 數(shù)為15個(gè),有效頁面地址數(shù)量為20個(gè),則創(chuàng)建與最大線程創(chuàng)建數(shù)相同的下載線程,S卩:需要 創(chuàng)建15個(gè)下載線程,通過15個(gè)下載線程分別處理15個(gè)有效頁面,當(dāng)某個(gè)下載線程處理完 成一個(gè)有效頁面時(shí),再申請(qǐng)?zhí)幚砩形刺幚淼挠行ы撁?,直到?jīng)]有需要處理的有效頁面時(shí),則 注銷下載線程;當(dāng)所有下載線程均被注銷時(shí),整個(gè)進(jìn)程結(jié)束。
[0046] S5,定義各個(gè)所述下載線程與所述有效頁面地址的對(duì)應(yīng)關(guān)系;
[0047] S6,各個(gè)所述下載線程通過與自身對(duì)應(yīng)的有效頁面地址,讀取到有效頁面,然后異 步下載所述有效頁面。例如:如果需要下載3個(gè)有效頁面,則同時(shí)開啟3個(gè)下載線程,通過 多線程下載頁面,可以有效提高下載效率。
[0048] 本步驟中,以指定下載線程異步下載指定有效頁面為例,包括:指定下載線程向指 定頁面服務(wù)器發(fā)送下載請(qǐng)求消息;然后判斷是否在預(yù)定時(shí)間間隔內(nèi)收到所述指定頁面服務(wù) 器返回的下載響應(yīng)消息,如果收到,則繼續(xù)后續(xù)流程;如果沒有收到,則攜測(cè)指定頁面服務(wù) 器有可能發(fā)生故障,因此注銷所述指定下載線程,釋放資源。
[0049] S7,各個(gè)所述下載線程通過讀取所述配置文件,獲得與所述有效頁面地址對(duì)應(yīng)的 同步服務(wù)器IP和路徑;
[0050] S8,各個(gè)所述下載線程將S6得到的所述有效頁面同步到S7獲得的同步服務(wù)器IP 和路徑所表示的同步服務(wù)器上。當(dāng)任意一個(gè)所述下載線程執(zhí)行S8結(jié)束時(shí),所述下載線程申 請(qǐng)?zhí)幚硐乱粋€(gè)有效頁面,直到?jīng)]有需要處理的有效頁面時(shí),注銷所述下載線程。
[0051] 本步驟中,以特定下載線程將特定有效頁面同步到特定同步服務(wù)器上為例,包括 以下步驟:
[0052] 由于在不同時(shí)刻,同一個(gè)頁面地址所包含的頁面內(nèi)容可能存在不同,例如:頁面進(jìn) 行了更新操作等。因此,需要按照一定的頻率,刷新特定同步服務(wù)器。下面介紹的流程即為 一個(gè)刷新過程。
[0053] 在前一時(shí)刻,所述特定下載線程下載所述特定有效頁面地址所代表的有效頁面 P1 ;然后將所述有效頁面P1以文件名X保存到所述特定同步服務(wù)器上;
[0054] 在當(dāng)前時(shí)刻,特定下載線程下載所述特定有效頁面地址所代表的有效頁面P2 ;然 后,首先將所述有效頁面P2以文件名Y寫入所述特定同步服務(wù)器上,其中,文件名X與文件 名Y不相同;再用文件Y替換文件X。由于文件寫入的速度較慢,而文件替換的速度非???, 所以,本發(fā)明中,采用先寫入再替換的方式更新頁面,可以保證在不影響頁面正常觀看的前 提下進(jìn)行頁面更新。
[0055] 綜上所述,本發(fā)明提供的基于多線程異步下載頁面的多服務(wù)器同步方法,首先通 過多線程異步下載各個(gè)頁面,然后再將下載得到的頁面同步到各個(gè)服務(wù)器上,從而在保證 用戶訪問網(wǎng)站速度的同時(shí),還能夠保證各臺(tái)WEB服務(wù)器的同步,提高了用戶的訪問體驗(yàn)。
[0056] 以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出,對(duì)于本【技術(shù)領(lǐng)域】的普通技術(shù)人 員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也應(yīng) 視本發(fā)明的保護(hù)范圍。
【權(quán)利要求】
1. 一種基于多線程異步下載頁面的多服務(wù)器同步方法,其特征在于,包括以下步驟: S1,接收配置文件的存儲(chǔ)位置信息; 52, 根據(jù)接收到的所述存儲(chǔ)位置信息,讀取所述配置文件;其中,所述配置文件已存儲(chǔ) 由一個(gè)以上需要下載的原始頁面地址組成的原始頁面地址列表,還存儲(chǔ)與每個(gè)所述原始頁 面地址對(duì)應(yīng)的一個(gè)以上同步服務(wù)器IP和路徑; 53, 對(duì)讀取到的所述配置文件進(jìn)行預(yù)處理,得到處理后的新配置文件;其中,所述新配 置文件中存儲(chǔ)由一個(gè)以上需要下載的有效頁面地址組成的有效頁面地址列表,還存儲(chǔ)與每 個(gè)所述有效頁面地址對(duì)應(yīng)的一個(gè)以上同步服務(wù)器IP和路徑; 54, 計(jì)算所述有效頁面地址列表中存儲(chǔ)的有效頁面地址數(shù)量,然后基于線程創(chuàng)建規(guī)則 創(chuàng)建多個(gè)下載線程; 55, 定義各個(gè)所述下載線程與所述有效頁面地址的對(duì)應(yīng)關(guān)系; 56, 各個(gè)所述下載線程通過與自身對(duì)應(yīng)的有效頁面地址,讀取到有效頁面,然后異步下 載所述有效頁面; 57, 各個(gè)所述下載線程通過讀取所述配置文件,獲得與所述有效頁面地址對(duì)應(yīng)的同步 服務(wù)器IP和路徑; 58, 各個(gè)所述下載線程將S6得到的所述有效頁面同步到S7獲得的同步服務(wù)器IP和路 徑所表示的同步服務(wù)器上; 當(dāng)任意一個(gè)所述下載線程執(zhí)行S8結(jié)束時(shí),所述下載線程申請(qǐng)?zhí)幚硐乱粋€(gè)有效頁面,直 到?jīng)]有需要處理的有效頁面時(shí),注銷所述下載線程。
2. 根據(jù)權(quán)利要求1所述的基于多線程異步下載頁面的多服務(wù)器同步方法,其特征在 于,S3中,對(duì)讀取到的所述配置文件進(jìn)行預(yù)處理,具體為: 對(duì)讀取到的所述配置文件進(jìn)行過濾操作。
3. 根據(jù)權(quán)利要求2所述的基于多線程異步下載頁面的多服務(wù)器同步方法,其特征在 于,對(duì)讀取到的所述配置文件進(jìn)行過濾操作,具體為: 判斷各個(gè)所述原始頁面地址是否為合法的地址鏈接,如果存在不合法的地址鏈接,則 刪除所述不合法的地址鏈接;和/或 判斷所述配置文件中是否存在說明性文字;如果存在,則刪除所述說明性文字;和/或 判斷所述配置文件中是否存在相同的原始頁面地址與同步服務(wù)器IP和路徑對(duì)應(yīng)關(guān) 系;如果存在,則刪除重復(fù)的所述原始頁面地址與同步服務(wù)器IP和路徑對(duì)應(yīng)關(guān)系。
4. 根據(jù)權(quán)利要求1所述的基于多線程異步下載頁面的多服務(wù)器同步方法,其特征在 于,S6中,指定下載線程異步下載指定有效頁面具體為: 所述指定下載線程向指定頁面服務(wù)器發(fā)送下載請(qǐng)求消息;然后判斷是否在預(yù)定時(shí)間間 隔內(nèi)收到所述指定頁面服務(wù)器返回的下載響應(yīng)消息,如果收到,則繼續(xù)后續(xù)流程;如果沒有 收到,則注銷所述指定下載線程。
5. 根據(jù)權(quán)利要求1所述的基于多線程異步下載頁面的多服務(wù)器同步方法,其特征在 于,S8中,特定下載線程將特定有效頁面同步到特定同步服務(wù)器上,具體為: 在前一時(shí)刻,所述特定下載線程下載所述特定有效頁面地址所代表的有效頁面P1 ;然 后將所述有效頁面P1以文件名X保存到所述特定同步服務(wù)器上; 在當(dāng)前時(shí)刻,所述特定下載線程下載所述特定有效頁面地址所代表的有效頁面P2 ;然 后,首先將所述有效頁面P2以文件名Y寫入所述特定同步服務(wù)器上;再用所述有效頁面P2 替換所述有效頁面P1 ;其中,文件名X與文件名Y不相同。
6.根據(jù)權(quán)利要求1所述的基于多線程異步下載頁面的多服務(wù)器同步方法,其特征在 于,S8,特定下載線程將特定有效頁面同步到特定同步服務(wù)器上,具體為: 所述特定下載線程首先判斷所述特定有效頁面是否為只讀屬性;如果是,則將所述特 定有效頁面的只讀屬性改為非只讀屬性之后,再將非只讀屬性的所述特定有效頁面同步到 特定同步服務(wù)器上。
【文檔編號(hào)】G06F9/52GK104219271SQ201310220524
【公開日】2014年12月17日 申請(qǐng)日期:2013年6月5日 優(yōu)先權(quán)日:2013年6月5日
【發(fā)明者】夏乃琛 申請(qǐng)人:北京齊爾布萊特科技有限公司