在多種情況下,商家檔案集合可能無法如預期運作:
- 發生內部錯誤,因此設定檔集合失敗。如果發生這種情況,
ProfilingResult
API 會告知您錯誤。 - 由於速率限制,設定檔集合失敗。詳情請參閱「頻率限制的運作方式」。
- 設定檔收集作業成功,但應用程式不會立即收到通知。
如果應用程式在長時間收集設定檔期間當機,就可能發生這種情況。如果應用程式關閉,系統會自動停止並儲存設定檔。應用程式重新啟動並使用
ProfilingManager
註冊一般事件監聽器時,系統會通知應用程式收集到的設定檔。
速率限制的運作方式
ProfilingManager
包含個別應用程式和整個系統的速率限制器。頻率限制器會記錄過多的設定檔,導致應用程式使用過多系統資源,因此會防止應用程式這麼做,因為完整的分析工作階段會使用大量資源。
應用程式和系統的速率限制器都會為收集到的每種設定檔指派費用,因為有些設定檔比其他設定檔更耗用資源。應用程式限制器會根據應用程式的總費用,控管個別應用程式的記錄量。不過,系統限制器會控管所有應用程式記錄的所有設定檔總費用。
速率限制器會為每個應用程式設定可用的總費用 (所有應用程式的費用相同)。每個設定檔會根據類型使用部分總費用。
頻率限制工具會使用三種時間週期:
- 每小時:每小時允許的最高費用。
- 每日:每日支出金額設有上限。
- 每週:每週允許的最高費用。
速率限制器會設定每個時間範圍內可使用的總費用。舉例來說,應用程式可能獲准每小時錄製 X 個設定檔、每天錄製 Y 個設定檔,以及每週錄製 Z 個設定檔。如果應用程式在上述任一期間達到上限,後續的設定檔要求都會產生 ERROR_FAILED_RATE_LIMIT_PROCESS
錯誤。
系統層級的速率限制也適用於這些時間範圍。不過,系統速率限制器是所有應用程式共用的全域限制。這項限制與個別應用程式配額分開設定,但每個設定檔都會計入這項限制,且使用相同的小時、每日和每週週期。如果達到這項全域限制,您會收到 ERROR_FAILED_RATE_LIMIT_SYSTEM
錯誤。