mirror of
https://github.com/LamGC/oracle-manager.git
synced 2025-04-29 22:27:33 +00:00
refactor: 调整 refCode 的生成方式以防止 Key 发生碰撞.
防止 Key 发生碰撞, 使用循环检查 refCode 是否已经缓存.
This commit is contained in:
parent
f1eef0ad94
commit
6c902b7eb8
@ -245,7 +245,10 @@ private val callbackCache: Cache<String, InlineKeyboardCallback> = CacheBuilder.
|
|||||||
.build()
|
.build()
|
||||||
|
|
||||||
fun InlineKeyboardButtonBuilder.callbackData(callback: InlineKeyboardCallback): InlineKeyboardButtonBuilder {
|
fun InlineKeyboardButtonBuilder.callbackData(callback: InlineKeyboardCallback): InlineKeyboardButtonBuilder {
|
||||||
val cacheReferenceCode = ThreadLocalRandom.current().randomString(32)
|
var cacheReferenceCode: String
|
||||||
|
do {
|
||||||
|
cacheReferenceCode = Random().randomString(32)
|
||||||
|
} while (callbackCache.getIfPresent(cacheReferenceCode) != null)
|
||||||
callbackCache.put(cacheReferenceCode, callback)
|
callbackCache.put(cacheReferenceCode, callback)
|
||||||
callbackData("{\"rcode\":\"$cacheReferenceCode\"}")
|
callbackData("{\"rcode\":\"$cacheReferenceCode\"}")
|
||||||
return this
|
return this
|
||||||
|
Loading…
Reference in New Issue
Block a user