吐槽下:本人主程是PHP,團隊里面也沒有精通.net的人才,為了解決這個平台方案,還是費了一部分勁。
新年了,希望有個新的開始。技術+團隊管理都有新的突破吧,在新的一年對自己好些,不能再繼續搞基下去。
問題出發點:
´隨着軟件的日益強大,用戶的使用需求越來越多,用戶也希望眾多數據進行整合,來達到資源的合理應用。
´有些數據資源需要抓取網頁的形式來采集到數據。
´采集應用不統一,沒有良好的管理程序,雜亂無章。
´采集應用經常性無響應,無相應的中斷程序,極大照成應用的不穩定性。
解決方案:
為了解決上述問題,提出了如下的解決方案,主要是使用了服務平台這個概念。
數據采集服務:使用C#創建windows服務。(aauto至今沒找到相應的創建windows服務的實例)
功能包括:
1. 定時請求待采集事項,並放入待采集隊列
2. 多線程定時通過API上傳資源數據以及其它狀態信息。
3. 定時平台監控,采集應用時間過長發出中斷通知,通知無響應強制關閉應用並且重新啟動。
4. 上傳心跳信息,保證數據采集服務正常運行。
采集應用:使用AAuto創建應用,其實使用.net也是可以創建采集應用的,主要考慮到aauto語言這塊團隊相對來說成熟點,而且已有現成的應用了,只需要稍微修改下就可以和服務平台對接了。
功能包括:1. 采集數據資源放入本地數據庫,比如sqlite。
2. 保存耗時信息,通過耗時的均運算服務平台可以決定多久發出中斷通知,以及可以預測多久時間可以完成工作。
狀態應用:主要是輔助應用。
功能包括:
1) 可以查看處理進度
2) 可以查看數據上傳進度
3) 可以查看待處理進度
4) 可以查看應用耗時信息
通過以上的解決方案來看:服務平台作為統籌工作者,負責與PHP API進行交互,相對來說對於采集應用來說相對獨立,所以有很好的解耦性,同時又保證了穩定性。
采集應用不再負責與PHP API交互,主要負責與本地資源交互,那么相對來說,代碼的工作量減少了,采集速度也能相應的提高。
具體代碼實現:可以關注下后期的文章吧,我也會進量把代碼貢獻出來。覺得不錯的給個贊吧,新的一年新氣象。

