本發(fā)明涉及計算機(jī)技術(shù)領(lǐng)域,尤其涉及一種收益入賬的處理方法和裝置以及處理系統(tǒng)。
背景技術(shù):
目前,互聯(lián)網(wǎng)理財平臺在處理大量用戶的收益入賬時,首先部署多臺執(zhí)行定時任務(wù)的服務(wù)器,為每臺服務(wù)器分配要處理的基金產(chǎn)品列表,并在服務(wù)器上為基金產(chǎn)品列表中的每個基金產(chǎn)品配置對應(yīng)的收益入賬任務(wù),這樣多臺服務(wù)器可以并行處理多個基金產(chǎn)品的收益入賬文件。而要處理的收益入賬文件會從前置機(jī)全量同步到每臺服務(wù)器上,前置機(jī)是互聯(lián)網(wǎng)理財平臺和基金公司之間進(jìn)行數(shù)據(jù)和文件交互的一個中轉(zhuǎn)機(jī)器,比如基金公司向理財平臺提供收益入賬文件,基金公司會把收益入賬文件上傳到預(yù)先約定的一臺前置機(jī)上,然后服務(wù)器會從這臺前置機(jī)下載到文件進(jìn)行處理。
收益入賬文件的處理過程可包括:每臺服務(wù)器通過本地配置的收益入賬任務(wù)定時啟動收益入賬處理程序,處理分配給本服務(wù)器的基金產(chǎn)品收益入賬。收益入賬處理程序的主要處理邏輯可包括:首先解析基金公司的收益入賬文件,加載文件中的用戶收益數(shù)據(jù)到服務(wù)器內(nèi)存進(jìn)行數(shù)據(jù)預(yù)檢查。如果預(yù)檢查通過,收益入賬批處理程序則調(diào)用其他系統(tǒng)服務(wù)逐個處理文件中每個用戶的收益數(shù)據(jù)。
目前,越來越多的基金公司已選擇接入互聯(lián)網(wǎng)理財平臺,而且由于操作便捷,互聯(lián)網(wǎng)理財平臺已經(jīng)吸引了海量的用戶,因此互聯(lián)網(wǎng)理財平臺每天要處理的用戶收益數(shù)據(jù)也十分巨大。已有的收益入賬處理方案至少存在以下問題:部署收益入賬處理任務(wù)的服務(wù)器數(shù)量眾多,每個服務(wù)器都是在本機(jī)單獨(dú)配置處理基金列表,導(dǎo)致多個服務(wù)器之間的任務(wù)執(zhí)行進(jìn)度是不可控制的,無法對每個服務(wù)器上定時執(zhí)行的收益入賬處理任務(wù)進(jìn)行有效管理,一旦部分服務(wù)器出現(xiàn)故障無法快速實(shí)現(xiàn)系統(tǒng)容災(zāi),而且配置無法有效的進(jìn)行管理,這樣會降低基金產(chǎn)品收益入賬的處理效率。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供了一種收益入賬的處理方法和裝置以及處理系統(tǒng),用于對服務(wù)器上執(zhí)行的收益入賬任務(wù)進(jìn)行精確化管理,提高收益入賬的處理效率。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供以下技術(shù)方案:
第一方面,本發(fā)明實(shí)施例提供一種收益入賬的處理方法,包括:
第一服務(wù)器接收發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,所述第一服務(wù)器屬于所述n個服務(wù)器,n為正整數(shù);
所述第一服務(wù)器根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序;
所述第一服務(wù)器接收所述發(fā)布系統(tǒng)發(fā)布給所述n個服務(wù)器的第一收益入賬任務(wù),以及所述第一服務(wù)器根據(jù)所述第一收益入賬任務(wù)執(zhí)行搶鎖操作,所述第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理;
當(dāng)所述第一服務(wù)器搶鎖成功時,所述第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行入賬處理。
結(jié)合第一方面,在第一方面的第一種可能的實(shí)現(xiàn)方式中,所述第一服務(wù)器根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序,包括:
所述第一服務(wù)器根據(jù)所述定時任務(wù)管理器在本機(jī)上加載并解析所述配置文件;
所述第一服務(wù)器檢查所述配置文件中的任務(wù)合法性;
當(dāng)所述配置文件中任務(wù)合法時,所述第一服務(wù)器根據(jù)所述配置文件中配置的任務(wù)執(zhí)行時間確定在當(dāng)前時刻是否需要執(zhí)行;
若在當(dāng)前時刻需要執(zhí)行任務(wù),所述第一服務(wù)器根據(jù)所述定時任務(wù)管理器啟動所述收益入賬處理程序。
結(jié)合第一方面的第一種可能的實(shí)現(xiàn)方式,在第一方面的第二種可能的實(shí)現(xiàn)方式中,所述第一服務(wù)器根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序,還包括:
若在當(dāng)前時刻需要執(zhí)行任務(wù),所述第一服務(wù)器先執(zhí)行隨機(jī)時間延遲,在延遲結(jié)束時,再觸發(fā)執(zhí)行如下步驟:所述第一服務(wù)器根據(jù)所述定時任務(wù)管理器啟動所述收益入賬處理程序。
結(jié)合第一方面或第一方面的第一種可能或第二種可能的實(shí)現(xiàn)方式,在第一方面的第三種可能的實(shí)現(xiàn)方式中,所述第一服務(wù)器根據(jù)所述第一收益入賬任務(wù)執(zhí)行搶鎖操作,包括:
所述第一服務(wù)器在zookeeper服務(wù)端創(chuàng)建一個zookeeper臨時節(jié)點(diǎn),若所述第一服務(wù)器成功創(chuàng)建所述zookeeper臨時節(jié)點(diǎn)則表示所述第一服務(wù)器搶鎖成功,若所述第一服務(wù)器無法創(chuàng)建所述zookeeper臨時節(jié)點(diǎn)則表示所述第一服務(wù)器搶鎖失敗。
結(jié)合第一方面的第三種可能的實(shí)現(xiàn)方式,在第一方面的第四種可能的實(shí)現(xiàn)方式中,所述第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行入賬處理,包括:
所述第一服務(wù)器通過所述收益入賬處理程序?qū)⑺龅谝皇找鏀?shù)據(jù)存儲到收益數(shù)據(jù)庫中;
所述第一服務(wù)器更新所述收益數(shù)據(jù)庫中所述第一收益數(shù)據(jù)的收益入賬狀態(tài)為已完成;
所述第一服務(wù)器刪除在zookeeper服務(wù)端所創(chuàng)建的所述zookeeper臨時節(jié)點(diǎn)。
結(jié)合第一方面或第一方面的第一種可能或第二種可能或第三種可能的實(shí)現(xiàn)方式,在第一方面的第五種可能的實(shí)現(xiàn)方式中,所述方法還包括:
當(dāng)所述第一服務(wù)器搶鎖成功時,所述第一服務(wù)器啟動鎖過期時間;
在所述鎖過期時間到達(dá)時,若所述第一服務(wù)器沒有完成對所述第一收益數(shù)據(jù)的入賬處理,所述第一服務(wù)器放棄搶到的鎖,由所述n個服務(wù)器中除所述第一服務(wù)器以外的其它服務(wù)器繼續(xù)進(jìn)行搶鎖操作。
結(jié)合第一方面或第一方面的第一種可能或第二種可能或第三種可能的實(shí)現(xiàn)方式,在第一方面的第六種可能的實(shí)現(xiàn)方式中,所述第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行入賬處理,包括:
所述第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行拆分處理,得m個收益子文件,所述m的取值為大于或等于2的自然數(shù);
所述第一服務(wù)器在所述收益入賬處理程序中創(chuàng)建m個子進(jìn)程;
所述第一服務(wù)器通過所述m個子進(jìn)程對所述m個收益子文件進(jìn)行并行的入賬處理。
結(jié)合第一方面的第六種可能的實(shí)現(xiàn)方式,在第一方面的第七種可能的實(shí)現(xiàn)方式中,所述第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行入賬處理,還包括:
所述第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行拆分處理之后,所述第一服務(wù)器生成所述m個收益子文件分別對應(yīng)的加密串;
所述第一服務(wù)器通過所述m個子進(jìn)程對所述m個收益子文件進(jìn)行并行的入賬處理,具體包括:
所述第一服務(wù)器根據(jù)所述加密串分別驗(yàn)證所述m個收益子文件的合法性;
所述第一服務(wù)器對合法的所有收益子文件分別通過一個子進(jìn)程同時進(jìn)行入賬處理。
第二方面,本發(fā)明實(shí)施例還提供另一種收益入賬的處理方法,包括:
發(fā)布系統(tǒng)向n個服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,由所述n個服務(wù)器分別根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序,所述n為正整數(shù);
所述發(fā)布系統(tǒng)向所述n個服務(wù)器發(fā)布第一收益入賬任務(wù),所述第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,所述n個服務(wù)器根據(jù)所述第一收益入賬任務(wù)執(zhí)行搶鎖操作,由第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行入賬處理,所述第一服務(wù)器為所述n個服務(wù)器中搶鎖成功的一個服務(wù)器。
結(jié)合第二方面,在第二方面的第一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述發(fā)布系統(tǒng)檢測是否有新加入的服務(wù)器;
當(dāng)檢測到新加入的服務(wù)器時,所述發(fā)布系統(tǒng)向所述新加入的服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件。
結(jié)合第二方面,在第二方面的第二種可能的實(shí)現(xiàn)方式中,所述方法還包括:
所述發(fā)布系統(tǒng)對所述配置文件進(jìn)行更新,并向所述n個服務(wù)器發(fā)布更新后的配置文件,由所述n個服務(wù)器分別根據(jù)所述更新后的配置文件在本機(jī)上更新所述收益入賬處理程序。
第三方面,本發(fā)明實(shí)施例還提供一種服務(wù)器,所述服務(wù)器為第一服務(wù)器,所述第一服務(wù)器包括:
接收模塊,用于接收發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,所述第一服務(wù)器屬于所述n個服務(wù)器,n為正整數(shù);
啟動模塊,用于根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序;
搶鎖模塊,用于接收所述發(fā)布系統(tǒng)發(fā)布給所述n個服務(wù)器的第一收益入賬任務(wù),以及根據(jù)所述第一收益入賬任務(wù)執(zhí)行搶鎖操作,所述第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理;
入賬處理模塊,用于當(dāng)所述第一服務(wù)器搶鎖成功時,對所述第一收益數(shù)據(jù)進(jìn)行入賬處理。
結(jié)合第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第二種可能的實(shí)現(xiàn)方式中,所述啟動模塊,包括:
文件處理模塊,用于根據(jù)所述定時任務(wù)管理器在本機(jī)上加載并解析所述配置文件;
檢查模塊,用于檢查所述配置文件中的任務(wù)合法性;
判斷模塊,用于當(dāng)所述配置文件中任務(wù)合法時,根據(jù)所述配置文件中配置的任務(wù)執(zhí)行時間確定在當(dāng)前時刻是否需要執(zhí)行;
程序啟動模塊,用于若在當(dāng)前時刻需要執(zhí)行任務(wù),根據(jù)所述定時任務(wù)管理器啟動所述收益入賬處理程序。
結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第三種可能的實(shí)現(xiàn)方式中,所述搶鎖模塊,具體用于在zookeeper服務(wù)端創(chuàng)建一個zookeeper臨時節(jié)點(diǎn),若所述第一服務(wù)器成功創(chuàng)建所述zookeeper臨時節(jié)點(diǎn)則表示所述第一服務(wù)器搶鎖成功,若所述第一服務(wù)器無法創(chuàng)建所述zookeeper臨時節(jié)點(diǎn)則表示所述第一服務(wù)器搶鎖失敗。
結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第四種可能的實(shí)現(xiàn)方式中,所述第一服務(wù)器還包括:
鎖過期處理模塊,用于當(dāng)所述第一服務(wù)器搶鎖成功時,啟動鎖過期時間;在所述鎖過期時間到達(dá)時,若所述第一服務(wù)器沒有完成對所述第一收益數(shù)據(jù)的入賬處理,放棄搶到的鎖,由所述n個服務(wù)器中除所述第一服務(wù)器以外的其它服務(wù)器繼續(xù)進(jìn)行搶鎖操作。
結(jié)合第三方面或第三方面的第一種可能的實(shí)現(xiàn)方式,在第三方面的第五種可能的實(shí)現(xiàn)方式中,所述入賬處理模塊,包括:
文件拆分模塊,用于對所述第一收益數(shù)據(jù)進(jìn)行拆分處理,得m個收益子文件,所述m的取值為大于或等于2的自然數(shù);
子進(jìn)程創(chuàng)建模塊,用于在所述收益入賬處理程序中創(chuàng)建m個子進(jìn)程;
并行處理模塊,用于通過所述m個子進(jìn)程對所述m個收益子文件進(jìn)行并行的入賬處理。
第四方面,本發(fā)明實(shí)施例還提供一種發(fā)布系統(tǒng),包括:
第一發(fā)布模塊,用于向n個服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,由所述n個服務(wù)器分別根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序,所述n為正整數(shù);
第二發(fā)布模塊,用于向所述n個服務(wù)器發(fā)布第一收益入賬任務(wù),所述第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,所述n個服務(wù)器根據(jù)所述第一收益入賬任務(wù)執(zhí)行搶鎖操作,由第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行入賬處理,所述第一服務(wù)器為所述n個服務(wù)器中搶鎖成功的一個服務(wù)器。
結(jié)合第四方面,在第四方面的第一種可能的實(shí)現(xiàn)方式中,所述發(fā)布系統(tǒng)還包括:
擴(kuò)容處理模塊,用于檢測是否有新加入的服務(wù)器;當(dāng)檢測到新加入的服務(wù)器時,向所述新加入的服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件。
結(jié)合第四方面,在第四方面的第二種可能的實(shí)現(xiàn)方式中,所述發(fā)布系統(tǒng)還包括:
配置更新模塊,用于對所述配置文件進(jìn)行更新,并向所述n個服務(wù)器發(fā)布更新后的配置文件,由所述n個服務(wù)器分別根據(jù)所述更新后的配置文件在本機(jī)上更新所述收益入賬處理程序。
第五方面,本發(fā)明實(shí)施例還提供一種收益入賬的處理系統(tǒng),所述收益入賬的處理系統(tǒng),包括:發(fā)布系統(tǒng)和n個服務(wù)器,
所述發(fā)布系統(tǒng)如第二方面中任一項(xiàng)所述的發(fā)布系統(tǒng);
所述n個服務(wù)器中包括有第一服務(wù)器,所述第一服務(wù)器如第一方面中任一項(xiàng)的服務(wù)器。
第六方面,提供了一種計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)中存儲有指令,當(dāng)其在計算機(jī)上運(yùn)行時,使得計算機(jī)執(zhí)行上述各方面所述的方法。
從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn):
在本發(fā)明實(shí)施例中,發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,第一服務(wù)器屬于n個服務(wù)器,第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序。發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù)時,第一服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,當(dāng)?shù)谝环?wù)器搶鎖成功時,第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理。本發(fā)明實(shí)施例中在收益入賬的處理系統(tǒng)中設(shè)置發(fā)布系統(tǒng),該發(fā)布系統(tǒng)發(fā)布第一收益入賬任務(wù)后,n個服務(wù)器都執(zhí)行搶鎖操作,只有搶鎖成功的服務(wù)器才能執(zhí)行收益數(shù)據(jù)的入賬處理,改變了現(xiàn)有技術(shù)中多個服務(wù)器各自定時執(zhí)行收益入賬任務(wù)導(dǎo)致的無法管理問題,本發(fā)明實(shí)施例可以對服務(wù)器上執(zhí)行的收益入賬任務(wù)進(jìn)行精確化管理,提高收益入賬的處理效率。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對實(shí)施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對于本領(lǐng)域的技術(shù)人員來講,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種收益入賬的處理系統(tǒng)的組成結(jié)構(gòu)示意圖;
圖2為本發(fā)明實(shí)施例提供的一種收益入賬的處理方法的流程方框示意圖;
圖3為本發(fā)明實(shí)施例提供的另一種收益入賬的處理方法的流程方框示意圖;
圖4為本發(fā)明實(shí)施例提供的多個服務(wù)器執(zhí)行搶鎖操作的示意圖;
圖5為本發(fā)明實(shí)施例提供的定時任務(wù)處理器的執(zhí)行機(jī)制示意圖;
圖6為本發(fā)明實(shí)施例提供的收益入賬程序搶鎖執(zhí)行的入賬過程示意圖;
圖7為本發(fā)明實(shí)施例提供的收益數(shù)據(jù)的拆分過程示意圖;
圖8為本發(fā)明實(shí)施例提供的收益子文件的處理過程示意圖;
圖9-a為本發(fā)明實(shí)施例提供的一種服務(wù)器的組成結(jié)構(gòu)示意圖;
圖9-b為本發(fā)明實(shí)施例提供的一種啟動模塊的組成結(jié)構(gòu)示意圖;
圖9-c為本發(fā)明實(shí)施例提供的另一種服務(wù)器的組成結(jié)構(gòu)示意圖;
圖9-d為發(fā)明實(shí)施例提供的一種入賬處理模塊的組成結(jié)構(gòu)示意圖;
圖10-a為本發(fā)明實(shí)施例提供的一種發(fā)布系統(tǒng)的組成結(jié)構(gòu)示意圖;
圖10-b為本發(fā)明實(shí)施例提供的一種發(fā)布系統(tǒng)的組成結(jié)構(gòu)示意圖;
圖10-c為本發(fā)明實(shí)施例提供的一種發(fā)布系統(tǒng)的組成結(jié)構(gòu)示意圖;
圖11為本發(fā)明實(shí)施例提供的收益入賬的處理方法應(yīng)用于服務(wù)器的組成結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種收益入賬的處理方法和裝置以及處理系統(tǒng),用于對服務(wù)器上執(zhí)行的收益入賬任務(wù)進(jìn)行精確化管理,提高基金產(chǎn)品收益入賬的處理效率。
為使得本發(fā)明的發(fā)明目的、特征、優(yōu)點(diǎn)能夠更加的明顯和易懂,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,下面所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而非全部實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域的技術(shù)人員所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明的說明書和權(quán)利要求書及上述附圖中的術(shù)語“包括”和“具有”以及他們的任何變形,意圖在于覆蓋不排他的包含,以便包含一系列單元的過程、方法、系統(tǒng)、產(chǎn)品或設(shè)備不必限于那些單元,而是可包括沒有清楚地列出的或?qū)τ谶@些過程、方法、產(chǎn)品或設(shè)備固有的其它單元。
首先請參閱圖1,為本發(fā)明實(shí)施例提供的一種收益入賬的處理系統(tǒng)的組成結(jié)構(gòu)示意圖。在本發(fā)明實(shí)施例提供的收益入賬的處理系統(tǒng)中設(shè)置有一個發(fā)布系統(tǒng)和多個服務(wù)器,其中服務(wù)器的個數(shù)用n來表示,n為正整數(shù),服務(wù)器的個數(shù)可以根據(jù)需要處理的收益數(shù)據(jù)的數(shù)量來確定,該收益入賬的處理系統(tǒng)可以用于對數(shù)值金額的變更管理,舉例說明,可以用于對基金的收益入賬,也可以用于對游戲賬號的金額變更管理。如圖1所示,本發(fā)明實(shí)施例中在收益入賬的處理系統(tǒng)中設(shè)置有發(fā)布系統(tǒng),該分布系統(tǒng)可以對n個服務(wù)器執(zhí)行收益入賬進(jìn)行管理,該發(fā)布系統(tǒng)可用于向n個服務(wù)器發(fā)布定時任務(wù)管理器、收益入賬處理程序所使用的配置文件和收益入賬任務(wù),從而n個服務(wù)器可以根據(jù)發(fā)布系統(tǒng)所發(fā)布的配置和任務(wù)執(zhí)行收益入賬處理,每個服務(wù)器的任務(wù)執(zhí)行進(jìn)度是可控制的,對每個服務(wù)器上定時執(zhí)行的收益入賬處理任務(wù)進(jìn)行有效管理,從而可提高基金產(chǎn)品收益入賬的處理效率。
接下來分別從服務(wù)器和發(fā)布系統(tǒng)的角度對本發(fā)明實(shí)施例提供的收益入賬的處理方法進(jìn)行舉例說明,首先介紹本發(fā)明實(shí)施例提供的服務(wù)器一側(cè)執(zhí)行的收益入賬的處理方法,請參閱圖2所示,以n個服務(wù)器中某一個服務(wù)器為例進(jìn)行說明,為便于描述,定義為“第一服務(wù)器”,本發(fā)明一個實(shí)施例提供的收益入賬的處理方法,可以包括如下步驟:
201、第一服務(wù)器接收發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,第一服務(wù)器屬于n個服務(wù)器。
在本發(fā)明實(shí)施例中,發(fā)布系統(tǒng)首先向n個服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,該n個服務(wù)器中的第一服務(wù)器接收到定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,其中,定時任務(wù)管理器用于觸發(fā)定時機(jī)制,發(fā)布系統(tǒng)向n個服務(wù)器發(fā)布定時任務(wù)管理器,從而每個服務(wù)器一側(cè)的定時任務(wù)都可以通過該定時任務(wù)管理器來觸發(fā)。收益入賬處理程序是服務(wù)器執(zhí)行收益入賬任務(wù)的處理邏輯。本發(fā)明實(shí)施例中,定時任務(wù)管理器和收益入賬處理程序所使用的配置文件都是由發(fā)布系統(tǒng)發(fā)布給第一服務(wù)器,從而第一服務(wù)器對收益入賬任務(wù)的執(zhí)行不再由服務(wù)器本機(jī)來自主確定,而是通過發(fā)布系統(tǒng)可以實(shí)現(xiàn)各個服務(wù)器的收益入賬任務(wù)的實(shí)時管理。
202、第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序。
在本發(fā)明實(shí)施例中,第一服務(wù)器從發(fā)布系統(tǒng)接收到定時任務(wù)管理器和配置文件之后,第一服務(wù)器可以在定時任務(wù)管理器的觸發(fā)下加載配置文件,從而第一服務(wù)器可以定時啟動收益入賬處理程序。舉例說明,第一服務(wù)器上的定時任務(wù)管理器在每隔一個時間段都可以加載配置文件,從而啟動收益入賬處理程序,收益入賬處理程序的執(zhí)行過程包括分布式搶鎖機(jī)制,在一次任務(wù)發(fā)布過程中,鎖是唯一的,只有搶鎖成功的服務(wù)器可以執(zhí)行本次發(fā)布的任務(wù),其余服務(wù)器退出執(zhí)行任務(wù),詳見后續(xù)步驟203和步驟204中的舉例說明。
在本發(fā)明的一些實(shí)施例中,步驟202第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序,包括:
a1、第一服務(wù)器根據(jù)定時任務(wù)管理器在本機(jī)上加載并解析配置文件;
a2、第一服務(wù)器檢查配置文件中的任務(wù)合法性;
a3、當(dāng)配置文件中任務(wù)合法時,第一服務(wù)器根據(jù)配置文件中配置的任務(wù)執(zhí)行時間確定在當(dāng)前時刻是否需要執(zhí)行;
a4、若在當(dāng)前時刻需要執(zhí)行任務(wù),第一服務(wù)器根據(jù)定時任務(wù)管理器啟動收益入賬處理程序。
舉例說明,第一服務(wù)器上的定時任務(wù)管理器在每隔一個很短的時間都會加載本機(jī)上的配置文件,并對本機(jī)上加載的配置文件進(jìn)行解析,例如讀取配置文件的文件內(nèi)容,解析過程和配置文件的類型和屬性有關(guān),此處不做限定。第一服務(wù)器解析配置文件之后,檢查配置文件中任務(wù)的合法性,例如檢測第一服務(wù)器是否有執(zhí)行任務(wù)的權(quán)限,任務(wù)執(zhí)行的時間是否符合要求等。然后根據(jù)配置文件中每個任務(wù)配置的執(zhí)行時間判斷該任務(wù)在當(dāng)前時刻是否需要執(zhí)行,如果需要執(zhí)行則定時任務(wù)管理器會啟動收益入賬處理程序。
進(jìn)一步的,在本發(fā)明的一些實(shí)施例中,步驟202第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序,除了執(zhí)行前述的步驟a1至a4之外,還可以執(zhí)行如下步驟:
a5、若在當(dāng)前時刻需要執(zhí)行任務(wù),第一服務(wù)器先執(zhí)行隨機(jī)時間延遲,在延遲結(jié)束時,再觸發(fā)執(zhí)行前述的步驟a4第一服務(wù)器根據(jù)定時任務(wù)管理器啟動收益入賬處理程序。
其中,由于不同服務(wù)器上的配置文件都是相同的,因此這些收益入賬處理程序都會同時啟動并搶鎖,為了避免由于每個服務(wù)器上所使用的時鐘存在不一致等原因?qū)е滤械娜蝿?wù)都始終在部分服務(wù)器上執(zhí)行,在定時任務(wù)管理器確定在當(dāng)前時刻需要執(zhí)行任務(wù)時,先隨機(jī)暫停幾秒鐘,例如隨機(jī)暫停1-5秒鐘,再啟動收益入賬處理程序。這種隨機(jī)時間延遲策略可以保證所有的收益入賬任務(wù)是均衡地分布在所有的服務(wù)器上執(zhí)行的,實(shí)現(xiàn)收益入賬任務(wù)的負(fù)載均衡。
203、第一服務(wù)器接收發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù),以及第一服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理。
在本發(fā)明實(shí)施例中,發(fā)布系統(tǒng)向n個服務(wù)器發(fā)布收益入賬批處理任務(wù),該收益入賬批處理任務(wù)中包括有多個收益入賬任務(wù),例如發(fā)布系統(tǒng)可以一次性發(fā)布多個收益入賬任務(wù),接下來以發(fā)布系統(tǒng)發(fā)布的某一個收益入賬任務(wù)(定義為第一收益入賬任務(wù))的處理過程為例進(jìn)行說明,發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù),在第一收益入賬任務(wù)中指示有對第一收益數(shù)據(jù)進(jìn)行入賬處理。n個服務(wù)器可分別接收該第一收益入賬任務(wù),每個服務(wù)器接收到該第一收益入賬任務(wù)之后,都需要執(zhí)行搶鎖操作,在一次任務(wù)發(fā)布過程中,鎖是唯一的,只有搶鎖成功的服務(wù)器可以執(zhí)行本次發(fā)布的任務(wù)。舉例說明,本發(fā)明實(shí)施例中服務(wù)器上可以部署分布式搶鎖機(jī)制,例如可以通過zookeeper來實(shí)現(xiàn),也可以通過數(shù)據(jù)庫中事務(wù)的鎖機(jī)制來完成。
在本發(fā)明的一些實(shí)施例中,步驟203中的第一服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,包括:
b1、第一服務(wù)器在zookeeper服務(wù)端創(chuàng)建一個zookeeper臨時節(jié)點(diǎn),若第一服務(wù)器成功創(chuàng)建zookeeper臨時節(jié)點(diǎn)則表示第一服務(wù)器搶鎖成功,若第一服務(wù)器無法創(chuàng)建zookeeper臨時節(jié)點(diǎn)則表示第一服務(wù)器搶鎖失敗。
其中,zookeeper是一個分布式的,開放源碼的分布式應(yīng)用程序協(xié)調(diào)服務(wù),可以為分布式應(yīng)用提供一致性服務(wù),n個服務(wù)器上每個服務(wù)器可以部署一個zookeeper客戶端,如果第一服務(wù)器上創(chuàng)建的zookeeper客戶端搶鎖成功,第一服務(wù)器可以在zookeeper服務(wù)器上創(chuàng)建一個zookeeper臨時節(jié)點(diǎn),zookeeper臨時節(jié)點(diǎn)的創(chuàng)建過程詳見google的chubby開源的實(shí)現(xiàn)方案。舉例說明,以基金產(chǎn)品的收益入賬為例,由于每只基金產(chǎn)品的收益入賬任務(wù)每天只需執(zhí)行一次,因此為了避免多臺服務(wù)器同時啟動相同基金產(chǎn)品的收益入賬任務(wù),則需要在部署收益入賬處理程序和定時任務(wù)管理器的服務(wù)器上部署一份zookeeper客戶端,其目的是保證多個服務(wù)器上的定時任務(wù)管理器在同時啟動收益入賬處理程序后,先到zookeeper服務(wù)端進(jìn)行搶鎖操作,搶鎖成功的收益入賬處理程序執(zhí)行本次發(fā)布系統(tǒng)發(fā)布的收益入賬任務(wù),其他的服務(wù)器上的收益入賬處理程序不執(zhí)行收益入賬邏輯。
204、當(dāng)?shù)谝环?wù)器搶鎖成功時,第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理。
在本發(fā)明實(shí)施例中,n個服務(wù)器都可以執(zhí)行搶鎖操作,若第一服務(wù)器搶鎖成功,第一服務(wù)器可以對第一收益數(shù)據(jù)進(jìn)行入賬處理,n個服務(wù)器的中的其余服務(wù)器不執(zhí)行該第一收益入賬任務(wù)。若第一服務(wù)器搶鎖失敗,第一服務(wù)器退出執(zhí)行第一收益入賬任務(wù)。
在本發(fā)明的一些實(shí)施例中,在前述執(zhí)行步驟b1的實(shí)現(xiàn)場景下,步驟204第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理,包括:
c1、第一服務(wù)器通過收益入賬處理程序?qū)⒌谝皇找鏀?shù)據(jù)存儲到收益數(shù)據(jù)庫中;
c2、第一服務(wù)器更新收益數(shù)據(jù)庫中第一收益數(shù)據(jù)的收益入賬狀態(tài)為已完成;
c3、第一服務(wù)器刪除在zookeeper服務(wù)端所創(chuàng)建的zookeeper臨時節(jié)點(diǎn)。
其中,n個服務(wù)器都連接到收益數(shù)據(jù)庫,第一服務(wù)器搶鎖成功時,該第一服務(wù)器將第一收益入賬任務(wù)所指示的第一收益數(shù)據(jù)存儲到收益數(shù)據(jù)庫。舉例說明,該第一收益數(shù)據(jù)對應(yīng)的是第一基金,則在收益數(shù)據(jù)庫中第一基金的收益入賬狀態(tài)可以更新為已完成,由于第一服務(wù)器使用zookeeper臨時節(jié)點(diǎn)進(jìn)行搶鎖,因此在第一服務(wù)器完成對第一收益數(shù)據(jù)進(jìn)行入賬處理之后,第一服務(wù)器刪除在zookeeper服務(wù)端所創(chuàng)建的zookeeper臨時節(jié)點(diǎn)。當(dāng)發(fā)布系統(tǒng)再發(fā)布第二收益入賬任務(wù)時,n個服務(wù)器還可以在zookeeper服務(wù)端繼續(xù)創(chuàng)建zookeeper臨時節(jié)點(diǎn),如果zookeeper臨時節(jié)點(diǎn)創(chuàng)建成功,則表示搶鎖成功。
在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的方法除了執(zhí)行前述步驟之外,本發(fā)明實(shí)施例提供的方法還可以包括如下步驟:
d1、當(dāng)?shù)谝环?wù)器搶鎖成功時,第一服務(wù)器啟動鎖過期時間;
d2、在鎖過期時間到達(dá)時,若第一服務(wù)器沒有完成對第一收益數(shù)據(jù)的入賬處理,第一服務(wù)器放棄搶到的鎖,由n個服務(wù)器中除第一服務(wù)器以外的其它服務(wù)器繼續(xù)進(jìn)行搶鎖操作。
舉例說明,第一服務(wù)器上的收益入賬處理程序搶鎖成功后服務(wù)器發(fā)生故障導(dǎo)致收益入賬任務(wù)中斷,這時zookeeper服務(wù)端的鎖還是被占用狀態(tài),其他服務(wù)器上的批處理程序無法搶鎖成功并執(zhí)行收益入賬任務(wù)。為了解決這個問題,在第一服務(wù)器搶鎖成功后需設(shè)置與zookeeper服務(wù)端的鎖過期時間,一旦鎖過期,第一服務(wù)器則會主動清除已經(jīng)搶到的鎖,從而其他服務(wù)器上的收益入賬處理程序則可以重新執(zhí)行搶鎖操作,從而保證收益入賬任務(wù)能夠被成功執(zhí)行。
在本發(fā)明的一些實(shí)施例中,步驟204第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理,包括:
e1、第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行拆分處理,得m個收益子文件,m的取值為大于或等于2的自然數(shù);
e2、第一服務(wù)器在收益入賬處理程序中創(chuàng)建m個子進(jìn)程;
e3、第一服務(wù)器通過m個子進(jìn)程對m個收益子文件進(jìn)行并行的入賬處理。
其中,通常情況下,一只基金產(chǎn)品都有上千萬條收益數(shù)據(jù),現(xiàn)有技術(shù)中會把所有的用戶收益數(shù)據(jù)都加載到內(nèi)存中逐個處理,無法實(shí)現(xiàn)單個收益文件中用戶收益數(shù)據(jù)的并行處理。在現(xiàn)有方案中,如果啟用多進(jìn)程并行處理每個文件中的收益數(shù)據(jù),由于每個收益文件大小有幾百兆字節(jié),而子進(jìn)程會復(fù)制父進(jìn)程的數(shù)據(jù)空間則會導(dǎo)致系統(tǒng)內(nèi)存資源快速耗盡,從而使系統(tǒng)出現(xiàn)內(nèi)存故障。為了解決內(nèi)存資源消耗過快導(dǎo)致的內(nèi)存故障問題,本發(fā)明實(shí)施例中可以對原始的第一收益數(shù)據(jù)進(jìn)行拆分,然后在收益入賬處理程序中啟動多個子進(jìn)程并行處理每個子文件,以提高每個文件中用戶收益數(shù)據(jù)的處理速度。
進(jìn)一步的,步驟204第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理,除了步驟e1至步驟e3之外,步驟204還可以包括如下步驟:
e4、第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行拆分處理之后,第一服務(wù)器生成m個收益子文件分別對應(yīng)的加密串。
其中,為了保證拆分后的每個子文件不被篡改,可以設(shè)置每個收益子文件對應(yīng)的加密串,例如采用消息摘要算法第五版(messagedigestalgorithm5,md5)計算每個子文件的加密串,或者采用數(shù)據(jù)加密算法(dataencryptionstandard,des)算法計算每個子文件的加密串,或者采用rsa公鑰加密算法計算每個子文件的加密串。
在執(zhí)行步驟e4的實(shí)現(xiàn)場景下,步驟e3第一服務(wù)器通過m個子進(jìn)程對m個收益子文件進(jìn)行并行的入賬處理,具體包括:
e31、第一服務(wù)器根據(jù)加密串分別驗(yàn)證m個收益子文件的合法性;
e32、第一服務(wù)器對合法的所有收益子文件分別通過一個子進(jìn)程同時進(jìn)行入賬處理。
其中,在拆分得到m個收益子文件時會生成每個子文件的加密串,然后在創(chuàng)建子進(jìn)程處理對應(yīng)子文件的收益數(shù)據(jù)前,會根據(jù)這個加密串核對子文件的合法性,只有合法的子文件才會被處理,這樣可以保證每個子文件中收益數(shù)據(jù)的安全性。在本發(fā)明的另一些實(shí)施例中,第一服務(wù)器還可以對不合法的基金收益子文件進(jìn)行錯誤信息告警。
通過以上實(shí)施例對本發(fā)明實(shí)施例的描述可知,發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,第一服務(wù)器屬于n個服務(wù)器,第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序。發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù)時,第一服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,當(dāng)?shù)谝环?wù)器搶鎖成功時,第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理。本發(fā)明實(shí)施例中在收益入賬的處理系統(tǒng)中設(shè)置發(fā)布系統(tǒng),該發(fā)布系統(tǒng)發(fā)布第一收益入賬任務(wù)后,n個服務(wù)器都執(zhí)行搶鎖操作,只有搶鎖成功的服務(wù)器才能執(zhí)行收益數(shù)據(jù)的入賬處理,改變了現(xiàn)有技術(shù)中多個服務(wù)器各自定時執(zhí)行收益入賬任務(wù)導(dǎo)致的無法管理問題,本發(fā)明實(shí)施例可以對服務(wù)器上執(zhí)行的收益入賬任務(wù)進(jìn)行精確化管理,提高收益入賬的處理效率。
前述實(shí)施例從第一服務(wù)器的角度對本發(fā)明實(shí)施例提供的收益入賬的處理方法進(jìn)行舉例說明,接下來介紹本發(fā)明實(shí)施例提供的發(fā)布系統(tǒng)一側(cè)執(zhí)行的收益入賬的處理方法,請參閱圖3所示,本發(fā)明一個實(shí)施例提供的收益入賬的處理方法,可以包括如下步驟:
301、發(fā)布系統(tǒng)向n個服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,由n個服務(wù)器分別根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序,n為正整數(shù)。
在本發(fā)明實(shí)施例中,發(fā)布系統(tǒng)首先向n個服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,該n個服務(wù)器中的第一服務(wù)器接收到定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,其中,定時任務(wù)管理器用于觸發(fā)定時機(jī)制,發(fā)布系統(tǒng)向n個服務(wù)器發(fā)布定時任務(wù)管理器,從而每個服務(wù)器一側(cè)的定時任務(wù)都可以通過該定時任務(wù)管理器來觸發(fā)。收益入賬處理程序是服務(wù)器執(zhí)行收益入賬任務(wù)的處理邏輯。本發(fā)明實(shí)施例中,定時任務(wù)管理器和收益入賬處理程序所使用的配置文件都是由發(fā)布系統(tǒng)發(fā)布給第一服務(wù)器,從而第一服務(wù)器對收益入賬任務(wù)的執(zhí)行不再由服務(wù)器本機(jī)來自主確定,而是通過發(fā)布系統(tǒng)可以實(shí)現(xiàn)各個服務(wù)器的收益入賬任務(wù)的實(shí)時管理。
302、發(fā)布系統(tǒng)向n個服務(wù)器發(fā)布第一收益入賬任務(wù),第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,n個服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,由第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理,第一服務(wù)器為n個服務(wù)器中搶鎖成功的一個服務(wù)器。
在本發(fā)明實(shí)施例中,發(fā)布系統(tǒng)向n個服務(wù)器發(fā)布收益入賬批處理任務(wù),該收益入賬批處理任務(wù)中包括有多個收益入賬任務(wù),例如發(fā)布系統(tǒng)可以一次性發(fā)布多個收益入賬任務(wù),接下來以發(fā)布系統(tǒng)發(fā)布的某一個收益入賬任務(wù)(定義為第一收益入賬任務(wù))的處理過程為例進(jìn)行說明,發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù),在第一收益入賬任務(wù)中指示有對第一收益數(shù)據(jù)進(jìn)行入賬處理。n個服務(wù)器可分別接收該第一收益入賬任務(wù),每個服務(wù)器接收到該第一收益入賬任務(wù)之后,都需要執(zhí)行搶鎖操作,在一次任務(wù)發(fā)布過程中,鎖是唯一的,只有搶鎖成功的服務(wù)器可以執(zhí)行本次發(fā)布的任務(wù)。舉例說明,本發(fā)明實(shí)施例中服務(wù)器上可以部署分布式搶鎖機(jī)制,例如可以通過zookeeper來實(shí)現(xiàn),也可以通過數(shù)據(jù)庫中事務(wù)的鎖機(jī)制來完成。
在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的方法除了執(zhí)行前述步驟之外,本發(fā)明實(shí)施例提供的方法還可以包括如下步驟:
f1、發(fā)布系統(tǒng)檢測是否有新加入的服務(wù)器;
f2、當(dāng)檢測到新加入的服務(wù)器時,發(fā)布系統(tǒng)向新加入的服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件。
其中,當(dāng)接入的收益入賬的產(chǎn)品數(shù)量越來越多時,需要對收益入賬處理任務(wù)進(jìn)行快速擴(kuò)容,在本發(fā)明實(shí)施例中主要是通過發(fā)布系統(tǒng)來實(shí)現(xiàn)的,發(fā)布系統(tǒng)實(shí)時檢測是否有的服務(wù)器加入進(jìn)來,對于新加入的服務(wù)器,將定時任務(wù)管理器、任務(wù)配置文件和收益入賬處理程序同時發(fā)布到新的服務(wù)器上。當(dāng)定時任務(wù)發(fā)布完成后,發(fā)布系統(tǒng)會自動重新啟動定時任務(wù)管理器。
在本發(fā)明的一些實(shí)施例中,本發(fā)明實(shí)施例提供的方法除了執(zhí)行前述步驟之外,本發(fā)明實(shí)施例提供的方法還可以包括如下步驟:
g1、發(fā)布系統(tǒng)對配置文件進(jìn)行更新,并向n個服務(wù)器發(fā)布更新后的配置文件,由n個服務(wù)器分別根據(jù)更新后的配置文件在本機(jī)上更新收益入賬處理程序。
其中,發(fā)布系統(tǒng)可以控制n個服務(wù)器的任務(wù)執(zhí)行,發(fā)布系統(tǒng)通過對收益入賬處理程序所使用的配置文件進(jìn)行更新,然后向n個服務(wù)器重新發(fā)布更新后的配置文件,從而使得n個服務(wù)器可以在本機(jī)上加載到最新版本的配置文件。
通過以上實(shí)施例對本發(fā)明實(shí)施例的描述可知,發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,第一服務(wù)器屬于n個服務(wù)器,第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序。發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù)時,第一服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,當(dāng)?shù)谝环?wù)器搶鎖成功時,第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理。本發(fā)明實(shí)施例中在收益入賬的處理系統(tǒng)中設(shè)置發(fā)布系統(tǒng),該發(fā)布系統(tǒng)發(fā)布第一收益入賬任務(wù)后,n個服務(wù)器都執(zhí)行搶鎖操作,只有搶鎖成功的服務(wù)器才能執(zhí)行收益數(shù)據(jù)的入賬處理,改變了現(xiàn)有技術(shù)中多個服務(wù)器各自定時執(zhí)行收益入賬任務(wù)導(dǎo)致的無法管理問題,本發(fā)明實(shí)施例可以對服務(wù)器上執(zhí)行的收益入賬任務(wù)進(jìn)行精確化管理,提高收益入賬的處理效率。
為便于更好的理解和實(shí)施本發(fā)明實(shí)施例的上述方案,下面舉例相應(yīng)的應(yīng)用場景來進(jìn)行具體說明。
按照互聯(lián)網(wǎng)理財平臺和基金公司的合同約定,基金公司一般會在凌晨3-4點(diǎn)左右提供收益文件,而理財平臺與用戶一般約定上午7點(diǎn)左右即可查看昨日的收益明細(xì)數(shù)據(jù)。目前處理一只基金產(chǎn)品的收益入賬大約耗時1-2個小時。因此,要處理的基金產(chǎn)品收益入賬任務(wù)較多但允許的處理時間比較短,且收益入賬任務(wù)耗時較久,就無法保證能夠在約定的時間前完成所有基金產(chǎn)品的收益入賬。本發(fā)明實(shí)施例中主要是為了實(shí)現(xiàn)互聯(lián)網(wǎng)理財平臺大量用戶的快速收益入賬,利用支持多服務(wù)器的定時任務(wù)管理器實(shí)現(xiàn)不同基金產(chǎn)品收益入賬的并行處理和負(fù)載均衡,并通過發(fā)布系統(tǒng)實(shí)現(xiàn)服務(wù)器的平行擴(kuò)容,在每臺服務(wù)器處理具體基金公司的收益文件時首先將收益文件拆分成多個子文件再利用多進(jìn)程技術(shù)并行處理各個子文件的數(shù)據(jù),從而實(shí)現(xiàn)互聯(lián)網(wǎng)理財平臺大量用戶的快速收益入賬。本發(fā)明實(shí)施例中能夠在跟用戶約定的時間點(diǎn)前完成所有基金產(chǎn)品的收益數(shù)據(jù)檢查和入賬,避免用戶的投訴和用戶恐慌。
本發(fā)明實(shí)施例中,主要通過支持多服務(wù)器的定時任務(wù)管理器來實(shí)現(xiàn)基金產(chǎn)品收益入賬的并行處理,并通過發(fā)布系統(tǒng)實(shí)現(xiàn)系統(tǒng)的快速擴(kuò)容及容災(zāi),發(fā)布系統(tǒng)是發(fā)布處理收益文件的批處理程序和批處理程序所使用的配置文件;而每天批處理程序的服務(wù)器上都有一份需要處理的收益文件。通過文件拆分機(jī)制實(shí)現(xiàn)單個收益文件中用戶收益數(shù)據(jù)的并行處理,從而最大程度上提高收益入賬的效率并保證用戶收益數(shù)據(jù)的安全性。其中,收益入賬是基金公司在每個自然日向互聯(lián)網(wǎng)理財平臺提供持有該基金有效份額用戶的收益明細(xì)數(shù)據(jù)文件,互聯(lián)網(wǎng)理財平臺檢查數(shù)據(jù)無誤后為每個用戶更新其持有基金有效份額和每日收益記錄數(shù)據(jù)。
請參閱圖4所示,為本發(fā)明實(shí)施例提供的多個服務(wù)器執(zhí)行搶鎖操作的示意圖。收益入賬任務(wù)通常由發(fā)布系統(tǒng)定期的發(fā)布,以基金產(chǎn)品為例,每只基金產(chǎn)品的收益入賬任務(wù)每天只需執(zhí)行一次,因此為了避免多臺服務(wù)器同時啟動相同基金產(chǎn)品的收益入賬任務(wù),則需要在部署收益入賬批處理程序和定時任務(wù)管理器的服務(wù)器上部署一份zookeeper客戶端,zookeeper是apache軟件基金會的一個軟件項(xiàng)目,它為大型分布式計算提供開源的分布式配置服務(wù)、同步服務(wù)等,并可以提供可靠的分布式鎖服務(wù)。舉例說明共有n個服務(wù)器,分別為:服務(wù)器1、服務(wù)器2、…、服務(wù)器n,在每個服務(wù)器上分別部署一個zookeeper客戶端,其目的是保證多個服務(wù)器上的定時任務(wù)管理器在同時啟動基金a的收益入賬批處理程序后,先到zookeeper服務(wù)端進(jìn)行搶鎖操作,搶鎖成功的收益入賬批處理程序執(zhí)行基金a的收益入賬邏輯,其他的批處理程序不執(zhí)行收益入賬邏輯。
接下來對本發(fā)明實(shí)施例中的系統(tǒng)擴(kuò)容機(jī)制進(jìn)行說明,當(dāng)接入的基金產(chǎn)品數(shù)量越來越多時需要對收益入賬批處理任務(wù)進(jìn)行快速擴(kuò)容,在本發(fā)明實(shí)施例中主要是通過發(fā)布系統(tǒng)來實(shí)現(xiàn)的,即將定時任務(wù)管理器、收益入賬任務(wù)和批處理程序所使用的配置文件同時發(fā)布到新的服務(wù)器上。當(dāng)定時任務(wù)發(fā)布完成后,發(fā)布系統(tǒng)會自動重新啟動定時任務(wù)管理器,定時任務(wù)管理器每分鐘都會自動加載和解析本機(jī)上的配置文件并啟動當(dāng)前時間需要執(zhí)行的任務(wù)。
接下來對本發(fā)明實(shí)施例中定時任務(wù)管理器執(zhí)行機(jī)制進(jìn)行說明,請參閱圖5所示,為本發(fā)明實(shí)施例提供的定時任務(wù)處理器的執(zhí)行機(jī)制示意圖。定時任務(wù)管理器是一個后臺常駐服務(wù),每分鐘都會執(zhí)行一次如下邏輯:每臺服務(wù)器上的定時任務(wù)管理器在每一分鐘都會加載本機(jī)上最新版本的配置文件,并檢查配置文件中任務(wù)的合法性,然后根據(jù)配置文件中每個任務(wù)配置的執(zhí)行時間判斷該任務(wù)在當(dāng)前時刻是否需要執(zhí)行,如果需要執(zhí)行則定時任務(wù)管理器會創(chuàng)建一個fork子進(jìn)程啟動對應(yīng)的任務(wù)。在unix系統(tǒng)中,用戶創(chuàng)建一個新進(jìn)程的方法就是調(diào)用系統(tǒng)調(diào)用fork,調(diào)用fork的進(jìn)程稱為父進(jìn)程,而新創(chuàng)建的進(jìn)程叫做子進(jìn)程。
配置文件是通過配置中心發(fā)布到本機(jī)的一個可擴(kuò)展標(biāo)記語言(extensiblemarkuplanguage,xml)文件,其格式同crontab任務(wù)的格式相同,這樣就可以快速遷移contab中的原有任務(wù),crontab任務(wù)一般在unix和類unix的操作系統(tǒng)上被使用,用于設(shè)置周期性被執(zhí)行的指令,用戶可以配置按分鐘、小時、日、月、星期配置需要執(zhí)行的任務(wù),具體采用的配置如下:
其中,服務(wù)器1所分配的基金產(chǎn)品列表包括:1888008801、1888008802、1888008803,以上命令中-m參數(shù)即為對應(yīng)的基金產(chǎn)品代碼。
請參閱圖6,為本發(fā)明實(shí)施例提供的收益入賬程序搶鎖執(zhí)行的入賬過程示意圖。由于每臺服務(wù)器上的配置文件都是通過發(fā)布系統(tǒng)發(fā)布到本機(jī)的,因此所有服務(wù)器上的任務(wù)配置文件都是相同的,為了保證每只基金的收益入賬任務(wù)只在一個服務(wù)器上執(zhí)行,則需要通過zookeeper的分布式鎖機(jī)制來進(jìn)行控制,每臺服務(wù)器上批處理程序的主要邏輯如下,以基金a的收益入賬處理為例:
基金a的收益入賬任務(wù)啟動后,批處理程序首先會在基金收益數(shù)據(jù)庫中檢查基金a今日的收益入賬任務(wù)是否已完成,如果已完成則退出執(zhí)行。如果基金a今日的收益入賬任務(wù)還未執(zhí)行,則會在zookeeper服務(wù)端創(chuàng)建一個臨時節(jié)點(diǎn),其路徑為:path/基金a的基金代碼/lock,zookeeper會保證只有一個服務(wù)器上的批處理程序創(chuàng)建節(jié)點(diǎn)成功,假如服務(wù)器1上的批處理程序創(chuàng)建成功節(jié)點(diǎn)成功則表示其搶鎖成功,那么該服務(wù)器上的批處理程序就可以執(zhí)行入賬的業(yè)務(wù)邏輯,其他服務(wù)器上的批處理程序則退出執(zhí)行。當(dāng)服務(wù)器1上的批處理程序執(zhí)行完成后,則更新基金收益數(shù)據(jù)庫中基金a的收益入賬狀態(tài)為已完成,并刪除之前在zookeeper服務(wù)端所創(chuàng)建的zookeeper臨時節(jié)點(diǎn)。
需要說明的是,在本發(fā)明實(shí)施例中,不同服務(wù)器上的任務(wù)配置文件都是相同的,因此這些批處理程序都會同時啟動并搶鎖,為了避免由于系統(tǒng)時間不一致等原因?qū)е滤械娜蝿?wù)都始終在部分服務(wù)器上執(zhí)行,在定時任務(wù)管理器創(chuàng)建子進(jìn)程后會先隨機(jī)暫停1-5秒鐘,再啟動批處理程序。這種隨機(jī)時間延遲策略可以保證所有的基金入賬任務(wù)是均衡地分布在所有的服務(wù)器上執(zhí)行的,實(shí)現(xiàn)基金產(chǎn)品收益入賬任務(wù)的負(fù)載均衡,而且當(dāng)其中部分服務(wù)器出現(xiàn)故障時,其他的服務(wù)器可以搶鎖成功并正常啟動收益入賬任務(wù)。
接下來對本發(fā)明實(shí)施例中鎖過期時間的設(shè)置進(jìn)行說明,假設(shè)服務(wù)器1上的批處理程序搶鎖成功后服務(wù)器發(fā)生故障導(dǎo)致收益入賬任務(wù)中斷,這時zookeeper服務(wù)端的鎖還是被占用狀態(tài),其他服務(wù)器上的批處理程序無法搶鎖成功并執(zhí)行收益入賬任務(wù)。為了解決搶鎖成功的服務(wù)器發(fā)生故障導(dǎo)致的收益入賬任務(wù)中斷問題,在批處理程序搶鎖成功后需從服務(wù)器的本機(jī)時間開始設(shè)置一個zookeeper服務(wù)端的會話(session)過期時長,一旦會話的存在時間超過該過期時長,服務(wù)器則會主動清除之前批處理程序創(chuàng)建的zookeeper臨時節(jié)點(diǎn),這樣其他服務(wù)器上的批處理程序則可以重新執(zhí)行批處理程序。其中,過期時長的設(shè)置可以選擇基金a的歷史收益入賬任務(wù)中的最長一次執(zhí)行時間的兩倍。例如,每個服務(wù)器自身都有一個時鐘,多個服務(wù)器之間會有誤差,這里的過期時長是按照時間段長短來計算的,比如服務(wù)器從本機(jī)的當(dāng)前時間計時,過期時長為5分鐘,則在5分鐘之后,服務(wù)器就會主動清除zookeeper臨時節(jié)點(diǎn)。
請參閱圖7,為本發(fā)明實(shí)施例提供的收益數(shù)據(jù)的拆分過程示意圖。在現(xiàn)有技術(shù)中,如果啟用多進(jìn)程并行處理每個文件中的收益數(shù)據(jù),由于每個收益文件大小有幾百字節(jié),而子進(jìn)程會復(fù)制父進(jìn)程的數(shù)據(jù)空間則會導(dǎo)致系統(tǒng)內(nèi)存資源快速耗盡,從而使系統(tǒng)出現(xiàn)內(nèi)存故障。為了解決內(nèi)存資源快速耗盡導(dǎo)致的內(nèi)存故障問題,本發(fā)明實(shí)施例中首先讀取原始的收益文件的大小,判斷原始收益文件的大小是否超過閾值,在原始收益文件過大的情況下對原始收益文件進(jìn)行拆分,然后在收益入賬批處理程序中啟動多個子進(jìn)程并行處理每個子文件,以提高每個文件中用戶收益數(shù)據(jù)的處理速度。由于服務(wù)器生成有每個子文件的加密串,從而可以避免文件拆分后,在子文件處理前子文件的內(nèi)容被人惡意篡改,收益文件的數(shù)據(jù)直接影響用戶的資金,通過本發(fā)明實(shí)施例中為每個子文件生成的加密串,可以提高收益文件的安全性。
請參閱圖8,為本發(fā)明實(shí)施例提供的收益子文件的處理過程示意圖。在拆分子文件時會生成每個子文件的加密串,然后在創(chuàng)建子進(jìn)程處理對應(yīng)子文件的收益數(shù)據(jù)前會根據(jù)這個加密串核對子收益文件的合法性,只有合法的子文件才會被處理,這是為了保證每個子文件中收益數(shù)據(jù)的安全性,若子文件不合法,服務(wù)器還可以是發(fā)送錯誤信息告警。另外,創(chuàng)建子進(jìn)程的個數(shù)是根據(jù)子文件的拆分個數(shù)確定的,這樣可以提高整個收益文件的處理效率,還可以保證系統(tǒng)的整體內(nèi)存使用是合理的。
通過前述的舉例說明可知,本發(fā)明實(shí)施例通過發(fā)布系統(tǒng)來發(fā)布收益入賬程序所使用的配置文件、定時任務(wù)管理器和收益入賬任務(wù),可以快速實(shí)現(xiàn)收益入賬任務(wù)的擴(kuò)容,并實(shí)現(xiàn)配置信息的集中和有效管理。本發(fā)明實(shí)施例通過zookeeper分布式鎖實(shí)現(xiàn)收益入賬定時任務(wù)的容災(zāi)和并行執(zhí)行,該分布式鎖也可以使用數(shù)據(jù)庫事務(wù)中的鎖機(jī)制來實(shí)現(xiàn)。通過隨機(jī)時間延遲策略保證收益入賬任務(wù)在多個服務(wù)器上是負(fù)載均衡的。發(fā)明實(shí)施例中通過文件拆分方法,可以提高每個基金產(chǎn)品收益文件的處理速度,并保證服務(wù)器內(nèi)存的合理使用。但是該機(jī)制存在不能設(shè)置鎖過期時間的問題。
需要說明的是,對于前述的各方法實(shí)施例,為了簡單描述,故將其都表述為一系列的動作組合,但是本領(lǐng)域技術(shù)人員應(yīng)該知悉,本發(fā)明并不受所描述的動作順序的限制,因?yàn)橐罁?jù)本發(fā)明,某些步驟可以采用其他順序或者同時進(jìn)行。其次,本領(lǐng)域技術(shù)人員也應(yīng)該知悉,說明書中所描述的實(shí)施例均屬于優(yōu)選實(shí)施例,所涉及的動作和模塊并不一定是本發(fā)明所必須的。
為便于更好的實(shí)施本發(fā)明實(shí)施例的上述方案,下面還提供用于實(shí)施上述方案的相關(guān)裝置。
請參閱圖9-a所示,本發(fā)明實(shí)施例提供的一種服務(wù)器,所述服務(wù)器為第一服務(wù)器900,所述第一服務(wù)器900包括:接收模塊901、啟動模塊902、搶鎖模塊903、入賬處理模塊904,其中,
接收模塊901,用于接收發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,所述第一服務(wù)器屬于所述n個服務(wù)器;
啟動模塊902,用于根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序;
搶鎖模塊903,用于接收所述發(fā)布系統(tǒng)發(fā)布給所述n個服務(wù)器的第一收益入賬任務(wù),以及根據(jù)所述第一收益入賬任務(wù)執(zhí)行搶鎖操作,所述第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理;
入賬處理模塊904,用于當(dāng)所述第一服務(wù)器搶鎖成功時,對所述第一收益數(shù)據(jù)進(jìn)行入賬處理。
在本發(fā)明的一些實(shí)施例中,請參閱圖9-b所示,所述啟動模塊902,包括:
文件處理模塊9021,用于根據(jù)所述定時任務(wù)管理器在本機(jī)上加載并解析所述配置文件;
檢查模塊9022,用于檢查所述配置文件中的任務(wù)合法性;
判斷模塊9023,用于當(dāng)所述配置文件中任務(wù)合法時,根據(jù)所述配置文件中配置的任務(wù)執(zhí)行時間確定在當(dāng)前時刻是否需要執(zhí)行;
程序啟動模塊9024,用于若在當(dāng)前時刻需要執(zhí)行任務(wù),根據(jù)所述定時任務(wù)管理器啟動所述收益入賬處理程序。
在本發(fā)明的一些實(shí)施例中,所述搶鎖模塊903,具體用于在zookeeper服務(wù)端創(chuàng)建一個zookeeper臨時節(jié)點(diǎn),若所述第一服務(wù)器成功創(chuàng)建所述zookeeper臨時節(jié)點(diǎn)則表示所述第一服務(wù)器搶鎖成功,若所述第一服務(wù)器無法創(chuàng)建所述zookeeper臨時節(jié)點(diǎn)則表示所述第一服務(wù)器搶鎖失敗。
在本發(fā)明的一些實(shí)施例中,請參閱圖9-c所示,所述第一服務(wù)器900還包括:
鎖過期處理模塊905,用于當(dāng)所述第一服務(wù)器搶鎖成功時,啟動鎖過期時間;在所述鎖過期時間到達(dá)時,若所述第一服務(wù)器沒有完成對所述第一收益數(shù)據(jù)的入賬處理,放棄搶到的鎖,由所述n個服務(wù)器中除所述第一服務(wù)器以外的其它服務(wù)器繼續(xù)進(jìn)行搶鎖操作。
在本發(fā)明的一些實(shí)施例中,請參閱圖9-d所示,所述入賬處理模塊904,包括:
文件拆分模塊9041,用于對所述第一收益數(shù)據(jù)進(jìn)行拆分處理,得m個收益子文件,所述m的取值為大于或等于2的自然數(shù);
子進(jìn)程創(chuàng)建模塊9042,用于在所述收益入賬處理程序中創(chuàng)建m個子進(jìn)程;
并行處理模塊9043,用于通過所述m個子進(jìn)程對所述m個收益子文件進(jìn)行并行的入賬處理。
通過以上實(shí)施例對本發(fā)明實(shí)施例的描述可知,發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,第一服務(wù)器屬于n個服務(wù)器,第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序。發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù)時,第一服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,當(dāng)?shù)谝环?wù)器搶鎖成功時,第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理。本發(fā)明實(shí)施例中在收益入賬的處理系統(tǒng)中設(shè)置發(fā)布系統(tǒng),該發(fā)布系統(tǒng)發(fā)布第一收益入賬任務(wù)后,n個服務(wù)器都執(zhí)行搶鎖操作,只有搶鎖成功的服務(wù)器才能執(zhí)行收益數(shù)據(jù)的入賬處理,改變了現(xiàn)有技術(shù)中多個服務(wù)器各自定時執(zhí)行收益入賬任務(wù)導(dǎo)致的無法管理問題,本發(fā)明實(shí)施例可以對服務(wù)器上執(zhí)行的收益入賬任務(wù)進(jìn)行精確化管理,提高收益入賬的處理效率。
請參閱圖10-a所示,本發(fā)明實(shí)施例提供的一種發(fā)布系統(tǒng)1000,所述發(fā)布系統(tǒng)1000包括:第一發(fā)布模塊1001和第二發(fā)布模塊1002,其中,
第一發(fā)布模塊1001,用于向n個服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,由所述n個服務(wù)器分別根據(jù)所述配置文件在本機(jī)上定時啟動所述收益入賬處理程序,所述n為正整數(shù);
第二發(fā)布模塊1002,用于向所述n個服務(wù)器發(fā)布第一收益入賬任務(wù),所述第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,所述n個服務(wù)器根據(jù)所述第一收益入賬任務(wù)執(zhí)行搶鎖操作,由第一服務(wù)器對所述第一收益數(shù)據(jù)進(jìn)行入賬處理,所述第一服務(wù)器為所述n個服務(wù)器中搶鎖成功的一個服務(wù)器。
在本發(fā)明的一些實(shí)施例中,請參閱圖10-b所示,所述發(fā)布系統(tǒng)1000還包括:
擴(kuò)容處理模塊1003,用于檢測是否有新加入的服務(wù)器;當(dāng)檢測到新加入的服務(wù)器時,向所述新加入的服務(wù)器發(fā)布定時任務(wù)管理器和收益入賬處理程序所使用的配置文件。
在本發(fā)明的一些實(shí)施例中,請參閱圖10-c所示,所述發(fā)布系統(tǒng)1000還包括:
配置更新模塊1004,用于對所述配置文件進(jìn)行更新,并向所述n個服務(wù)器發(fā)布更新后的配置文件,由所述n個服務(wù)器分別根據(jù)所述更新后的配置文件在本機(jī)上更新所述收益入賬處理程序。
通過以上實(shí)施例對本發(fā)明實(shí)施例的描述可知,發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的定時任務(wù)管理器和收益入賬處理程序所使用的配置文件,第一服務(wù)器屬于n個服務(wù)器,第一服務(wù)器根據(jù)配置文件在本機(jī)上定時啟動收益入賬處理程序。發(fā)布系統(tǒng)發(fā)布給n個服務(wù)器的第一收益入賬任務(wù)時,第一服務(wù)器根據(jù)第一收益入賬任務(wù)執(zhí)行搶鎖操作,第一收益入賬任務(wù)用于指示對第一收益數(shù)據(jù)進(jìn)行入賬處理,當(dāng)?shù)谝环?wù)器搶鎖成功時,第一服務(wù)器對第一收益數(shù)據(jù)進(jìn)行入賬處理。本發(fā)明實(shí)施例中在收益入賬的處理系統(tǒng)中設(shè)置發(fā)布系統(tǒng),該發(fā)布系統(tǒng)發(fā)布第一收益入賬任務(wù)后,n個服務(wù)器都執(zhí)行搶鎖操作,只有搶鎖成功的服務(wù)器才能執(zhí)行收益數(shù)據(jù)的入賬處理,改變了現(xiàn)有技術(shù)中多個服務(wù)器各自定時執(zhí)行收益入賬任務(wù)導(dǎo)致的無法管理問題,本發(fā)明實(shí)施例可以對服務(wù)器上執(zhí)行的收益入賬任務(wù)進(jìn)行精確化管理,提高收益入賬的處理效率。
圖11是本發(fā)明實(shí)施例提供的一種服務(wù)器結(jié)構(gòu)示意圖,該服務(wù)器1100可因配置或性能不同而產(chǎn)生比較大的差異,可以包括一個或一個以上中央處理器(centralprocessingunits,cpu)1122(例如,一個或一個以上處理器)和存儲器1132,一個或一個以上存儲應(yīng)用程序1142或數(shù)據(jù)1144的存儲介質(zhì)1130(例如一個或一個以上海量存儲設(shè)備)。其中,存儲器1132和存儲介質(zhì)1130可以是短暫存儲或持久存儲。存儲在存儲介質(zhì)1130的程序可以包括一個或一個以上模塊(圖示沒標(biāo)出),每個模塊可以包括對服務(wù)器中的一系列指令操作。更進(jìn)一步地,中央處理器1122可以設(shè)置為與存儲介質(zhì)1130通信,在服務(wù)器1100上執(zhí)行存儲介質(zhì)1130中的一系列指令操作。
服務(wù)器1100還可以包括一個或一個以上電源1126,一個或一個以上有線或無線網(wǎng)絡(luò)接口1150,一個或一個以上輸入輸出接口1158,和/或,一個或一個以上操作系統(tǒng)1141,例如windowsservertm,macosxtm,unixtm,linuxtm,freebsdtm等等。
上述實(shí)施例中該服務(wù)器1100具體可以執(zhí)行圖2中所示的第一服務(wù)器執(zhí)行的收益入賬的處理方法步驟,也可以執(zhí)行圖3中所示的發(fā)布系統(tǒng)執(zhí)行的收益入賬的處理方法步驟。
另外需說明的是,以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部模塊來實(shí)現(xiàn)本實(shí)施例方案的目的。另外,本發(fā)明提供的裝置實(shí)施例附圖中,模塊之間的連接關(guān)系表示它們之間具有通信連接,具體可以實(shí)現(xiàn)為一條或多條通信總線或信號線。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性勞動的情況下,即可以理解并實(shí)施。
通過以上的實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可借助軟件加必需的通用硬件的方式來實(shí)現(xiàn),當(dāng)然也可以通過專用硬件包括專用集成電路、專用cpu、專用存儲器、專用元器件等來實(shí)現(xiàn)。一般情況下,凡由計算機(jī)程序完成的功能都可以很容易地用相應(yīng)的硬件來實(shí)現(xiàn),而且,用來實(shí)現(xiàn)同一功能的具體硬件結(jié)構(gòu)也可以是多種多樣的,例如模擬電路、數(shù)字電路或?qū)S秒娐返?。但是,對本發(fā)明而言更多情況下軟件程序?qū)崿F(xiàn)是更佳的實(shí)施方式。基于這樣的理解,本發(fā)明的技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品存儲在可讀取的存儲介質(zhì)中,如計算機(jī)的軟盤、u盤、移動硬盤、只讀存儲器(rom,read-onlymemory)、隨機(jī)存取存儲器(ram,randomaccessmemory)、磁碟或者光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述的方法。
綜上所述,以上實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照上述實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對上述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。