2016-04-04 26 views
1

我們有多個訪問Box的服務器,因此我們關閉了自動刷新功能。在不兼容系統中維護Box刷新/訪問令牌

  • 上一頁訪問令牌< 1小時老仍然可以用於訪問
  • 令牌 一對可被刷新多次,只要一個新的令牌:

    connect.setMaxRequestAttempts(1); 
    connect.setAutoRefresh(false); 
    

    假設從單元測試收集的對 尚未用於訪問。

鑑於此,看起來您可以讓多個閱讀器使用一個寫入器更新令牌對,即使讀取器獲得先前的令牌對,也應該沒問題(用於訪問)。

我們確保系統中只有一個線程更新令牌,但仍然遇到401錯誤問題,儘管鎖定了令牌更新。上面的假設似乎有問題。

+0

我們記錄的一件奇怪事情是,如果在對文件信息執行提取的同時,令牌刷新將被延遲。 – Joel

回答

1

你的假設很接近。以下是預期的行爲:

  • 令牌有效期爲一小時,除非請求使用新令牌並且使用 。
  • 如果新令牌被請求但未被使用,則舊令牌 仍然有效(假定它不到一個小時)。
  • 如果請求並使用新令牌,則舊令牌 已失效。
+0

在我們的測試中,我們測試一箇舊的令牌(意味着一個更新的令牌是否已被創建和使用)仍然可以工作......它的確如此......聽起來就像在這種情況下,Box沒有時間實質上無效它可能被緩存或不是什麼。我會看看如果在較長的時間段失敗後嘗試舊的令牌。 – Joel

+0

因此,等待一分鐘,足以讓舊令牌失敗。除了序列化對Box的_all_訪問之外,似乎沒有任何保證。 – Joel

+0

@Joel即使使用了新的令牌,舊的令牌仍然可以在短時間內繼續工作。這有意爲客戶端可能有正在使用舊令牌的正在進行中或未決請求的情況提供幫助。 – Greg