跳到內容

競態條件

競態條件是一個概念,其中一個結果依賴於其他事件的順序或時間。例如,如果期望的事件序列是“事件A”,然後是“事件B”,但有時“事件A”先出現,有時“事件B”先出現,這就是所謂的競態條件。

針對新用戶

在Braze中,針對新創建用戶的消息最常見的競爭條件之一。這裏,事件的預期順序是:

  1. 創建一個用戶;
  2. 同一用戶立即成為消息的目標。

但是,在某些情況下,第二個事件會先觸發。這意味著消息試圖發送給尚未創建的用戶,因此用戶永遠不會收到消息。

使用多個API端點

如果你使用獨立的API端點來創建用戶和觸發畫布/活動,這也會導致這種競爭條件。當用戶信息通過用戶/跟蹤端點,它可能偶爾需要幾秒鍾來處理。因此,當向用戶/跟蹤而且消息端點同時,不能保證在發送消息之前更新用戶信息。如果這些請求是在同一個API調用中發出的,那麼應該沒有問題。注意,如果發送預定的消息API調用,這些請求必須是獨立的,並且必須在發送預定的API調用之前創建一個用戶。

避免這種競爭狀態的一種方法是,在創建用戶和Canvas或活動瞄準該用戶之間添加一分鍾左右的延遲。

類似地,您可以使用屬性對象來添加/創建/更新用戶,然後使用帆布/觸發/發送運動/觸發/發送端點。此API調用將處理屬性對象,然後再瞄準用戶。

包含在該對象中的屬性將在Braze開始發送戰役之前被處理。如果send_to_existing_onlyFlag設置為false,並且external_user_id在Braze的數據庫中不存在,Braze將為external_user_id並在Braze開始發送活動之前處理用戶配置文件的相關屬性。還要注意,如果send_to_existing_onlyFlag設置為false,則必須包含屬性對象以創建用戶。的send_to_existing_onlyFlag不能與用戶別名一起使用。

匹配基於動作的觸發器和受眾過濾器

另一種常見的競態條件可能發生在配置基於動作的活動或Canvas時,其觸發器與觀眾過濾器相同(例如,更改屬性或執行自定義事件)。當用戶執行觸發事件時,他們可能不在觀眾中,這意味著他們不會收到活動或進入畫布。在這種情況下,Braze建議您避免配置觸發器來匹配您的受眾篩選器。

這個頁麵有幫助嗎?
新東西!
Baidu
map