本技術屬于計算機,具體而言,本技術涉及一種拆章處理的方法、裝置、服務器及存儲介質。
背景技術:
1、電子出版物格式(electronic?publication,epub)通常用作數字出版物和電子雜志等電子閱讀器中的標準格式。由于epub格式文章存在可以根據顯示器大小和字體設置自適應排版的特性,epub格式在電子閱讀中進行了廣泛的應用,在進行epub文章的閱讀時,通常需要客戶端從服務端獲取全部的epub文章后,經解析展示在客戶端界面上。
2、為了方便閱讀者進行閱讀,以及由于章節過大導致的客戶端渲染異常的問題,需要對epub文章進行拆章處理,也即將大章節的文章拆分為小章節的文章,并且在對epub文章進行拆章處理時是采用一定的拆章算法進行的拆章處理,但是在實際應用過程中,拆章算法可能會被更新,因此,當拆章算法被更新時,如何對epub文章進行拆章處理成為一個關鍵問題。
技術實現思路
1、本技術實施例的目的旨在提供一種在拆章算法被更新時,能夠對epub進行拆章處理的方式。為了實現上述目的,本技術實施例提供的技術方案如下:
2、第一方面,本技術實施例提供了一種拆章處理的方法,由第一服務器執行,所述方法包括:
3、在獲取到目標應用的客戶端針對目標文章的獲取請求時,獲取第一版本號和第二版本號,其中,所述第一版本號為緩存服務器中當前存儲的所述目標文章對應的拆章算法的版本號,所述第二版本號為所述目標應用當前采用的拆章算法的版本號;
4、若所述第一版本號和所述第二版本號不同,則采用所述第二版本號對應的拆章算法對目標文章重新進行拆章處理,得到新的拆章結果,并采用新的拆章結果和第二版本號對緩存服務器中存儲的所述目標文章的目標拆章結果和對應的第一版本號進行更新;
5、在獲取到針對所述目標應用的拆章算法更新觸發操作時,獲取第三版本號和第四版本號,其中,所述第三版本號和所述第四版本號分別為:所述目標應用對應的更新前的拆章算法的版本號和更新后的拆章算法的版本號;
6、根據所述第三版本號和所述第四版本號確定更新方式,所述更新方式為第一方式或第二方式;
7、若是第一方式,則獲取所述緩存服務器中存儲的所有文章對應的新的拆章結果,將采用各個文章新的拆章結果與所述第四版本號對所述緩存服務器中存儲的各文章的拆章結果和對應的版本號進行更新,所述新的拆章結果是采用所述更新后的拆章算法拆章得到的。
8、在一種可能的實現方式中,任一拆章算法的版本號包括第一子版本號和第二子版本號,所述根據所述第三版本號和所述第四版本號確定更新方式,所述更新方式為第一方式或第二方式,包括:
9、若所述第三版本號的第一子版本號和第四版本號的第一子版本號不同,確定所述更新方式為第一方式;
10、若所述第三版本號的第二子版本號和第四版本號的第二子版本號不同,所述第三版本號的第一子版本號和第四版本號的第一子版本號相同,確定所述更新方式為第二方式。
11、在另一種可能的實現方式中,所述方法還包括:
12、當檢測到目標應用的客戶端的啟動請求時,獲取本地存儲的每個文章對應的第五版本號和第六版本號,所述第五版本號為所述本地存儲的每一文章所對應的拆章算法的版本號,所述第六版本號為所述緩存服務器中存儲的所述每個文章的拆章結果所對應的版本號;
13、對于本地存儲的每個文章,若所述第五版本號和所述第六版本號不同,則從所述緩存服務器中獲取所述每個文章的拆章結果,并將所述每個文章的拆章結果和所述第六版本號發送至所述目標應用的客戶端,以更新所述本地存儲的每個文章的拆章結果以及對應的版本號。
14、在另一種可能的實現方式中,所述獲取所述緩存服務器中存儲的所有文章對應的新的拆章結果,包括:
15、從所述緩存服務器中獲取所有文章對應的當前拆章結果;
16、將所述所有文章對應的當前拆章結果發送給第二服務器,以使得所述第二服務器基于所述所有文章的拆章結果,并按照所述更新后的拆章算法,進行重新拆章處理;
17、從所述第二服務器中獲取重新所述緩存服務器中存儲的所有文章對應的新的拆章結果。
18、在另一種可能的實現方式中,所述從所述緩存服務器中獲取所有文章對應的當前拆章結果,包括:
19、確定當前拆章結果的目標獲取順序,所述目標獲取順序為第一順序的倒序,所述第一順序為所述所有文章中各文章的拆章結果被上傳至所述緩存服務器中的順序;
20、按照所述當前拆章結果的目標獲取順序從所述緩存服務器中獲取所有文章對應的當前拆章結果。
21、在另一種可能的實現方式中,所述獲取第一版本號,包括:
22、對所述目標文章進行哈希計算,得到所述目標文章的哈希結果;
23、基于所述目標文章的哈希結果,從所述緩存服務器中查找所述目標文章的拆章結果;
24、若查找到所述目標文章的拆章結果,則獲取所述目標文章的拆章結果所對應的版本號,作為所述第一版本號。
25、在另一種可能的實現方式中,所述方法還包括:
26、若未查找到所述目標文章的拆章結果,則按照所述目標應用當前采用的拆章算法對所述目標文章進行拆章處理;
27、將拆章結果以及所述第二版本號上傳至所述緩存服務器中進行關聯存儲;
28、將所述拆章結果返回至所述目標應用的客戶端。
29、在另一種可能的實現方式中,若所述第一版本號和所述第二版本號相同,所述方法還包括:
30、從所述緩存服務器中獲取所述目標文章的目標拆章結果,并返回至所述目標應用的客戶端。
31、第二方面,提供了一種拆章處理的裝置,所述裝置包括:
32、第一獲取模塊,用于在獲取到目標應用的客戶端針對目標文章的獲取請求時,獲取第一版本號和第二版本號,其中,所述第一版本號為緩存服務器中當前存儲的所述目標文章對應的拆章算法的版本號,所述第二版本號為所述目標應用當前采用的拆章算法的版本號;
33、第一更新模塊,用于當所述第一版本號和所述第二版本號不同時,采用所述第二版本號對應的拆章算法對目標文章重新進行拆章處理,得到新的拆章結果,并采用新的拆章結果和第二版本號對緩存服務器中存儲的所述目標文章的目標拆章結果和對應的第一版本號進行更新;
34、第二獲取模塊,用于在獲取到針對所述目標應用的拆章算法更新觸發操作時,獲取第三版本號和第四版本號,其中,所述第三版本號和所述第四版本號分別為:所述目標應用對應的更新前的拆章算法的版本號和更新后的拆章算法的版本號;
35、更新方式確定模塊,用于根據所述第三版本號和所述第四版本號確定更新方式,所述更新方式為第一方式或第二方式;
36、第二更新模塊,用于當所述更新方式是第一方式時,獲取所述緩存服務器中存儲的所有文章對應的新的拆章結果,將采用各個文章新的拆章結果與所述第四版本號對所述緩存服務器中存儲的各文章的拆章結果和對應的版本號進行更新,所述新的拆章結果是采用所述更新后的拆章算法拆章得到的。
37、在一種可能的實現方式中,所述更新方式為第一方式或第二方式,任一拆章算法的版本號包括第一子版本號和第二子版本號,所述更新方式確定模塊在根據所述第三版本號和所述第四版本號確定更新方式時,具體用于:
38、若所述第三版本號的第一子版本號和第四版本號的第一子版本號不同,確定所述更新方式為第一方式;
39、若所述第三版本號的第二子版本號和第四版本號的第二子版本號不同,所述第三版本號的第一子版本號和第四版本號的第一子版本號相同,確定所述更新方式為第二方式。
40、在另一種可能的實現方式中,所述裝置還包括:第三獲取模塊、第四獲取模塊以及發送模塊,其中,
41、所述第三獲取模塊,用于當檢測到目標應用的客戶端的啟動請求時,獲取本地存儲的每個文章對應的第五版本號和第六版本號,所述第五版本號為所述本地存儲的每一文章所對應的拆章算法的版本號,所述第六版本號為所述緩存服務器中存儲的所述每個文章的拆章結果所對應的版本號;
42、所述第四獲取模塊,用于對于本地存儲的每個文章,若所述第五版本號和所述第六版本號不同,則從所述緩存服務器中獲取所述每個文章的拆章結果;
43、所述發送模塊,用于將所述每個文章的拆章結果和所述第六版本號發送至所述目標應用的客戶端,以更新所述本地存儲的每個文章的拆章結果以及對應的版本號。
44、在另一種可能的實現方式中,所述第二更新模塊在獲取所述緩存服務器中存儲的所有文章對應的新的拆章結果時,具體用于:
45、從所述緩存服務器中獲取所有文章對應的當前拆章結果;
46、將所述所有文章對應的當前拆章結果發送給第二服務器,以使得所述第二服務器基于所述所有文章的拆章結果,并按照所述更新后的拆章算法,進行重新拆章處理;
47、從所述第二服務器中獲取重新所述緩存服務器中存儲的所有文章對應的新的拆章結果。
48、在另一種可能的實現方式中,所述第二更新模塊在從所述緩存服務器中獲取所有文章對應的當前拆章結果時,具體用于:
49、確定當前拆章結果的目標獲取順序,所述目標獲取順序為第一順序的倒序,所述第一順序為所述所有文章中各文章的拆章結果被上傳至所述緩存服務器中的順序;
50、按照所述當前拆章結果的目標獲取順序從所述緩存服務器中獲取所有文章對應的當前拆章結果。
51、在另一種可能的實現方式中,所述第一獲取模塊在獲取第一版本號時,具體用于:
52、對所述目標文章進行哈希計算,得到所述目標文章的哈希結果;
53、基于所述目標文章的哈希結果,從所述緩存服務器中查找所述目標文章的拆章結果;
54、若查找到所述目標文章的拆章結果,則獲取所述目標文章的拆章結果所對應的版本號,作為所述第一版本號。
55、在另一種可能的實現方式中,所述裝置還包括:拆章處理模塊、上傳模塊以及第一返回模塊,其中,
56、所述拆章處理模塊,用于當未查找到所述目標文章的拆章結果時,按照所述目標應用當前采用的拆章算法對所述目標文章進行拆章處理;
57、所述上傳模塊,用于將拆章結果以及所述第二版本號上傳至所述緩存服務器中進行關聯存儲;
58、所述第一返回模塊,用于將所述拆章結果返回至所述目標應用的客戶端。
59、在另一種可能的實現方式中,若所述第一版本號和所述第二版本號相同,所述裝置還包括:第五獲取模塊以及第二返回模塊,其中,
60、所述第五獲取模塊,用于從所述緩存服務器中獲取所述目標文章的目標拆章結果;
61、所述第二返回模塊,用于返回至所述目標應用的客戶端。
62、第三方面,本技術實施例還提供了一種服務器,該服務器包括存儲器和處理器,存儲器中存儲有計算機程序,處理器執行該計算機程序以實現第一方面任一可能的實現方式所提供的拆章處理的方法。
63、第四方面,本技術實施例還提供了一種計算機可讀存儲介質,該存儲介質中存儲有計算機程序,該計算機程序被處理器執行時實現第五方面任一可能的實現方式所提供的拆章處理的方法。
64、第五方面,本技術實施例還提供了一種計算機程序產品,該計算機程序產品包括計算機程序,該計算機程序被處理器執行時實現第五方面任一可能的實現方式所提供的拆章處理的方法。
65、本技術實施例提供的技術方案帶來的有益效果如下:
66、本技術實施例提供了一種拆章處理的方法、裝置、服務器以及存儲介質,在本技術實施例中,在一種情況下,在獲取到目標應用的客戶端針對目標文章的獲取請求時,獲取緩存服務器中當前存儲的所述目標文章對應的拆章算法的版本號以及所述目標應用當前采用的拆章算法的版本號,若所述第一版本號和所述第二版本號不同,則拆章算法可能發生變更,此時則采用所述第二版本號對應的拆章算法對目標文章重新進行拆章處理,得到新的拆章結果,并采用新的拆章結果和第二版本號對緩存服務器中存儲的所述目標文章的目標拆章結果和對應的第一版本號進行更新;在另一種情況下,在獲取到針對所述目標應用的拆章算法更新觸發操作時,獲取所述目標應用對應的更新前的拆章算法的版本號和更新后的拆章算法的版本號,然后根據更新前的拆章算法的版本號和更新后的拆章算法的版本號能夠確定更新方式為第一方式或第二方式,并且若是第一方式,則獲取所述緩存服務器中存儲的所有文章對應的新的拆章結果,將采用各個文章新的拆章結果與更新后的拆章算法的版本號對緩存服務器中存儲的各文章的拆章結果和對應的版本號進行更新,并且該新的拆章結果是采用更新后的拆章算法拆章得到的,從而可以實現當拆章算法被更新時,對文章進行拆章處理。