mirror of
https://github.com/LamGC/oracle-manager.git
synced 2025-04-29 14:17: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()
|
||||
|
||||
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)
|
||||
callbackData("{\"rcode\":\"$cacheReferenceCode\"}")
|
||||
return this
|
||||
|
Loading…
Reference in New Issue
Block a user