[seata]session 采用file存储时的一点疑惑

2024-02-21 398 views

回答

0

不明白你想干嘛,可以描述清楚点吗

9

这里是 判断session刷新到本地文件的逻辑: if (!writeDataFile(new TransactionWriteStore(session, logOperation).encode())) { return false; } lastModifiedTime = System.currentTimeMillis(); curFileTrxNum = FILE_TRX_NUM.incrementAndGet(); if (curFileTrxNum % PER_FILE_BLOCK_SIZE == 0 && (System.currentTimeMillis() - trxStartTimeMills) > MAX_TRX_TIMEOUT_MILLS) { return saveHistory(); } 我想问的是,如果在很长一段时间内 curFileTrxNum 不能达到PER_FILE_BLOCK_SIZE的整数倍时,session就无法存到到本地文件中了。 是否可以改成 curFileTrxNum % PER_FILE_BLOCK_SIZE == 0 || (System.currentTimeMillis() - trxStartTimeMills) > MAX_TRX_TIMEOUT_MILLS来判断?

1

这里只是saveHistory 做文件的rolling吧?