time_expire時間過短,刷卡至少1分鐘,其他5分鐘

今天做併發測試發現,很多都報了這個錯。

查交易記錄發現,數據庫存的交易開始和過期時間間隔有半小時,但是請求日誌中時間是一致的。

問題原因:

在 發起交易請求時,使用了SimpleDateFormat類,該類不是線程安全的。

 * <h4><a name="synchronization">Synchronization</a></h4>
 *
 * <p>
 * Date formats are not synchronized.
 * It is recommended to create separate format instances for each thread.
 * If multiple threads access a format concurrently, it must be synchronized
 * externally.
 *

結局方案:
每次format都新建一個對象。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章