System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請涉及物聯網網關消息處理技術,特別是涉及一種基于actor模型的物聯網設備控制方法。
技術介紹
1、隨著智能家居領域的發展,智能家居不僅提供了系統集成和信息交換功能,還優化了人們的生活方式和居住環境。智能家居通過物聯網技術將家居的不同設備連接在一起,從而進行一系列的控制及數據采集,如照明控制、窗簾控制、空調控制、環境監測等等。
2、傳統的基于物聯網網關的數據對接技術均是采用不同通道啟用一個線程或的方式來同時執行數據采集任務,每個線程可以獨立的訪問和處理數據,從而是實現并行化的數據采集,未考慮硬件設備的內存、磁盤等性能問題,這可能導致資源競爭和沖突,如處理不當,可能導致數據不一致,性能下降甚至系統崩潰。因此為了解決資源競爭和沖突的問題,當多個線程訪問采集同一資源時,常用方法在對資源進行訪問或操作前,對將要訪問或操作的資源加鎖,防止其他線程在此期間訪問或修改這些資源,然而通過加鎖的方式容易容易帶來的一系列阻塞、等待、死鎖等線程級別的問題,以使得無法高效的進行下控。
技術實現思路
1、基于此,針對上述技術問題,提供一種基于actor模型的物聯網消息控制方法,以解決現有技術無法高效的對物聯網設備進行下控的問題。
2、第一方面,一種基于actor模型的物聯網設備控制方法,應用于物聯網網關,所述方法包括:
3、步驟s11:接收控制任務請求信息,并添加至預先構建的actor模型的任務隊列末尾;
4、步驟s12:actor模型根據任務隊列中控制任
5、步驟s13:通過actor模型的任務分配機制,利用actormanager模塊從actor模型的任務隊列的開頭依次為控制任務請求信息分配發送actor;
6、步驟s14:利用分配的發送actor向對應設備下發控制任務請求信息;所述利用分配的發送actor向對應設備下發控制任務請求信息的過程中,發送actor向其它發送actor發送自身正在工作的消息,且與其它發送actor進行信息交互以完成對應的控制任務下控信息,并根據控制任務請求信息的下發情況在發送actor自身中更新對應的狀態信息;
7、步驟s15:當發送actor將所分配的控制任務請求信息執行結束,判斷actor模型的任務隊列中是否還有控制任務請求信息,若有,則將利用actormanager模塊將actor模型的任務隊列的開頭的控制任務請求信息分配給執行任務結束的發送actor,若無,則執行任務結束的發送actor執行銷毀操作。
8、上述方案中,可選地,所述利用分配的發送actor向對應設備下發控制任務請求信息包括:
9、所述發送actor請求線程池分配線程,并通過線程池分配的線程下發控制任務請求報文,actormanager模塊在所述發送actor下發完成控制任務請求報文時,釋放分配給所述發送actor的線程。
10、上述方案中,可選地,所述步驟s14后還包括:
11、步驟s21:監聽到設備已生成控制任務返回信息,創建接收actor;
12、步驟s22:所述接收actor請求線程池分配線程,并通過線程池分配的線程接收控制任務返回報文,actormanager模塊在所述接收actor接收完成控制任務返回報文時,釋放分配給所述接收actor的線程;
13、步驟s23:當再次監聽到設備已生成控制任務返回信息時,則所述接收actor重復執行步驟s22;直到超過第一設定時間未監聽到設備已生成控制任務返回信息時,則所述接收actor執行銷毀操作。
14、上述方案中,進一步可選地,所述接收actor請求線程池分配線程,并通過線程池分配的線程接收控制任務返回報文之后還包括:
15、所述接收actor將接收到的控制任務返回報文發送至actor模型中的actorrecivequeue模塊中;
16、當actorrecivequeue模塊中存在控制任務返回報文時,創建處理actor;
17、所述處理actor從actorrecivequeue模塊中依次讀取控制任務返回報文并進行處理;當actorrecivequeue模塊超過第二設定時間未存儲有控制任務返回報文時,則所述處理actor執行銷毀操作。
18、上述方案中,可選地,所述步驟s1后包括:判斷所述控制任務請求信息是否被執行,若否,則將所述控制任務信息進行標記。
19、上述方案中,進一步可選地,所述第一設定時間為3s。
20、上述方案中,進一步可選地,所述第二設定時間為5s。
21、第二方面,一種物聯網網關系統,所述系統包括:
22、控制任務信息接收模塊:用于接收控制任務請求信息,并添加至預先構建的actor模型的任務隊列末尾;
23、actor創建模塊:用于根據任務隊列中控制任務信息的數量以及物聯網網關的系統資源能力創建1個或多個發送actor;
24、actor分配模塊:通過actor模型的任務分配機制,利用actormanager模塊從actor模型的任務隊列的開頭依次為控制任務請求信息分配發送actor;
25、發送actor下發模塊:用于利用分配的發送actor向對應設備下發控制任務請求信息;所述利用分配的發送actor向對應設備下發控制任務請求信息的過程中,發送actor向其它發送actor發送自身正在工作的消息,且與其它發送actor進行信息交互以完成對應的控制任務下控信息,并根據控制任務請求信息的下發情況在發送actor自身中更新對應的狀態信息;
26、判斷模塊:用于當發送actor將所分配的控制任務請求信息執行結束,判斷actor模型的任務隊列中是否還有控制任務請求信息,若有,則將利用actormanager模塊將actor模型的任務隊列的開頭的控制任務請求信息分配給執行任務結束的發送actor,若無,則執行任務結束的發送actor執行銷毀操作。
27、第三方面,一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,所述處理器執行所述計算機程序時實現上述第一方面所述的一種基于actor模型的物聯網設備控制方法的步驟。
28、第四方面,一種計算機程序產品,包括計算機程序/指令,該計算機程序/指令被處理器執行時實現上述第一方面所述的一種基于actor模型的物聯網設備控制方法的步驟。
29、本申請至少具有以下有益效果:
30、本申請通過在物聯網網關處構建actor模型,利用actor模型為接收到的控制任務請求信息分配發送actor,利用發送actor獨立的完成控制任務請求信息的下發,并在發送actor獨立完成任務的同時,發送actor向其它發送actor發送自身正在工作的消息,以阻止其它發送actor在同一線程上工作,保障actor內的變量不會被其本文檔來自技高網...
【技術保護點】
1.一種基于Actor模型的物聯網設備控制方法,其特征在于,應用于物聯網網關,所述方法包括:
2.根據權利要求1所述的基于Actor模型的物聯網設備控制方法,其特征在于,所述利用分配的發送Actor向對應設備下發控制任務請求信息包括:
3.根據權利要求1所述的基于Actor模型的物聯網設備控制方法,其特征在于,所述步驟S14后還包括:
4.根據權利要求3所述的基于Actor模型的物聯網設備控制方法,其特征在于,所述接收Actor請求線程池分配線程,并通過線程池分配的線程接收控制任務返回報文之后還包括:
5.根據權利要求1所述的基于Actor模型的物聯網設備控制方法,其特征在于,所述步驟S1后包括:判斷所述控制任務請求信息是否被執行,若否,則將所述控制任務信息進行標記。
6.根據權利要求3所述的基于Actor模型的物聯網設備控制方法,其特征在于,所述第一設定時間為3s。
7.根據權利要求4所述的基于Actor模型的物聯網設備控制方法,其特征在于,所述第二設定時間為5s。
8.一種物聯網網關系統,其特
9.一種計算機設備,包括存儲器和處理器,所述存儲器存儲有計算機程序,其特征在于,所述處理器執行所述計算機程序時實現權利要求1至7中任一項所述的方法的步驟。
10.一種計算機程序產品,包括計算機程序/指令,其特征在于,該計算機程序/指令被處理器執行時實現權利要求1至7中任一項所述方法的步驟。
...【技術特征摘要】
1.一種基于actor模型的物聯網設備控制方法,其特征在于,應用于物聯網網關,所述方法包括:
2.根據權利要求1所述的基于actor模型的物聯網設備控制方法,其特征在于,所述利用分配的發送actor向對應設備下發控制任務請求信息包括:
3.根據權利要求1所述的基于actor模型的物聯網設備控制方法,其特征在于,所述步驟s14后還包括:
4.根據權利要求3所述的基于actor模型的物聯網設備控制方法,其特征在于,所述接收actor請求線程池分配線程,并通過線程池分配的線程接收控制任務返回報文之后還包括:
5.根據權利要求1所述的基于actor模型的物聯網設備控制方法,其特征在于,所述步驟s1后包括:判斷所述控制任...
【專利技術屬性】
技術研發人員:張勝紅,劉龍豹,
申請(專利權)人:中瑞恒北京科技有限公司,
類型:發明
國別省市:
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。