建構 ThingWorx 解決方案的最佳作法一覽
建構 IoT 解決方案時,請考量下列最佳作法:
• 在專案中包括實體。針對一個解決方案僅使用一個專案。
• 用模型標籤標記實體。
• 將所有延伸功能實體設定為不可編輯。
• 為所有使用者介面標籤建立當地語系化權杖。
• 使用 JavaScript 實行服務。
• 使用「物形式」定義服務與內容。
• 針對實體名稱、內容及服務使用具唯一性的命名空間前置碼。
• 定義實體的組織與使用者群組,以設定可見度及權限。
• 將大型解決方案分成較小的延伸功能。
• 請勿使用固定資產「物件」來在混搭中執行服務。應動態選取或查詢資產「物件」,然後應執行其服務。
|
若要避免發生問題,請使用協助程式或管理員「物件」服務。這些服務會將資產「物件」的名稱視為會在混搭中進一步使用的輸入參數。
|
• 在
物件訂閱中將
「按順序執行事件」核取方塊保持清除狀態,因為它需要更多的 CPU 資源。請僅在您需要逐一執行訂閱的執行時,才使用
「按順序執行事件」訂閱功能。如有必要,請使用 JSONState 物件保存已排序訂閱的執行之間的資料。
• 如果針對相同時間戳記更新多個內容,請使用 UpdatePropertyValuesBatched 與 UpdateSubscribedPropertyValuesBatched 這兩個新服務。
• 檢閱已排序的訂閱指令集,以確保不會在狀態中保留過多資料。如果將限制設定得太低,請使用
platform-settings.json 組態詳細資訊 SubscriptionSettings 部份中的
SubscriptionsStatesMaxDirectMemorySize 設定予以增加。
訂閱效能中所述的指標可讓您追蹤訂閱狀態儲存空間的目前大小。
|
當達到訂閱狀態儲存空間大小限制時,系統會在儲存新狀態時清除舊狀態。ApplicationLog 中會顯示錯誤訊息,例如:
Memory size limit exceeded, dropped state for key [RemoteRouter-1:Thing1:Template1:ThingTemplate:Subscription1]
|