[發明專利]一種基于Actor模型的數據持續抓取方法及系統有效
| 申請號: | 202010700948.3 | 申請日: | 2020-07-20 |
| 公開(公告)號: | CN111931025B | 公開(公告)日: | 2023-08-15 |
| 發明(設計)人: | 海克洪;張成成 | 申請(專利權)人: | 武漢美和易思數字科技有限公司 |
| 主分類號: | G06F16/951 | 分類號: | G06F16/951 |
| 代理公司: | 武漢紅觀專利代理事務所(普通合伙) 42247 | 代理人: | 陳凱 |
| 地址: | 430000 湖北省武漢市東湖新技術開發區北斗路6號武*** | 國省代碼: | 湖北;42 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 actor 模型 數據 持續 抓取 方法 系統 | ||
1.一種基于Actor模型的數據持續抓取方法,其特征在于,所述方法包括:
S1、使用akka-persistence-typed模塊定義一個名為PersistentDataGetter的持久化Actor單例對象,并使用State存儲當前抓取數據的最大時間戳或最大id作為狀態;
S2、PersistentDataGetter啟動后,向自己發送觸發數據抓取的消息;
S3、當PersistentDataGetter收到觸發數據抓取的消息后,結合觸發數據抓取的消息類型,根據配置文件中設置的數據抓取起始時間生成多條數據請求消息或根據預設間隔時間生成一條數據請求消息并發送給自己;
S4、當PersistentDataGetter收到所述數據請求消息后,使用play-ws庫向數據提供接口發起HTTP請求以獲取所述數據請求消息中指定的時間范圍內的數據;
S5、若HTTP請求成功,則解析響應中的數據,得到抓取數據allData;
S6、判斷allData對應的數據是否為最新數據,若是,根據State中的狀態值過濾出新的數據filteredData,將filteredData以主鍵唯一方式存儲到關系型數據庫中,同時生成一個事件對象,并持久化到磁盤中;若否,將allData以主鍵唯一方式存儲到關系型數據庫中;
S7、當PersistentDataGetter收到數據抓取失敗消息,生成一個新的數據請求消息,并使用定時器在一段隨機時間后重新嘗試抓取數據。
2.根據權利要求1所述基于Actor模型的數據持續抓取方法,其特征在于,所述步驟S2中,所述觸發數據抓取的消息包括按照配置文件中設置的數據抓取起始時間抓取數據的消息GetFromStartTime和按照定時器的預設間隔時間抓取最新數據的消息GetLatest。
3.根據權利要求2所述基于Actor模型的數據持續抓取方法,其特征在于,所述步驟S3中,所述數據請求消息中包括數據開始時間、數據結束時間以及對應的觸發數據抓取的消息類型,即數據請求消息GetMyData(startTime,endTime,isLatest),其中,startTime表示數據開始時間,endTime表示數據結束時間,isLatest用于區分對應的觸發數據抓取的消息類型,若isLatest==false,表示GetMyData消息對應的觸發數據抓取的消息類型為GetFromStartTime,GetMyData請求的為歷史數據;若isLatest==true,表示GetMyData消息對應的觸發數據抓取的消息類型為GetLatest,GetMyData請求的為最新數據。
4.根據權利要求3所述基于Actor模型的數據持續抓取方法,其特征在于,所述步驟S6具體包括:
如果allData對應的GetMyData消息的isLatest字段為true,則使用State中存儲的最大id值maxId與allData中的數據做比對,過濾得到數據id大于maxId的數據,命名為filteredData;利用filteredData和maxId,計算出新的數據的newMaxId,若filteredData為空,則newMaxId等于maxId,若filteredData不為空,則newMaxId等于filteredData中的最大數據id;生成一條MyData(data=filteredData,maxId=newMaxId,isLatest=true)消息發送給自己;
如果allData對應的GetMyData消息的isLatest字段為false,則讀取State中的maxId值,生成一條MyData(data=allData,maxId=maxId,isLatest=false)消息發送給自己;
當PersistentDataGetter收到MyData消息后,將消息中的data以主鍵唯一方式存儲到關系型數據庫中;若isLatest為true,則生成一個MyDataEvent對象,并持久化到磁盤中,持久化完成后,利用MyDataEvent中maxId值更新State中的maxId值。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于武漢美和易思數字科技有限公司,未經武漢美和易思數字科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202010700948.3/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種沖床廢屑清理裝置
- 下一篇:一種膜組件的進氣流量分配結構
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





