Class ThreadTransferTimeoutService
java.lang.Object
com.bytedesk.service.thread_transfer.ThreadTransferTimeoutService
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate org.springframework.context.ApplicationContext
private static final String
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
cancelTimeoutTask
(String transferUid) 取消转接超时倒计时任务void
createTimeoutTask
(String transferUid, String messageUid, Long expireLength) 创建转接超时倒计时任务获取RedisTemplate,用于测试和调试long
getRemainingTime
(String transferUid) 获取转接剩余时间org.springframework.data.redis.listener.ChannelTopic
获取超时监听频道private void
handleTransferTimeout
(String transferUid) 处理转接超时boolean
isTransferTimeout
(String transferUid) 检查转接是否已超时void
onKeyExpired
(String message) 处理Redis key过期事件 当Redis key过期时,此方法会被调用
-
Field Details
-
TRANSFER_TIMEOUT_KEY_PREFIX
- See Also:
-
redisTemplate
-
applicationContext
@Autowired private org.springframework.context.ApplicationContext applicationContext
-
-
Constructor Details
-
ThreadTransferTimeoutService
public ThreadTransferTimeoutService()
-
-
Method Details
-
createTimeoutTask
创建转接超时倒计时任务- Parameters:
transferUid
- 转接记录UIDmessageUid
- 消息UIDexpireLength
- 超时时间(秒)
-
cancelTimeoutTask
取消转接超时倒计时任务- Parameters:
transferUid
- 转接记录UID
-
onKeyExpired
处理Redis key过期事件 当Redis key过期时,此方法会被调用- Parameters:
message
- 过期消息
-
handleTransferTimeout
处理转接超时- Parameters:
transferUid
- 转接记录UID
-
isTransferTimeout
检查转接是否已超时- Parameters:
transferUid
- 转接记录UID- Returns:
- true if timeout, false otherwise
-
getRemainingTime
获取转接剩余时间- Parameters:
transferUid
- 转接记录UID- Returns:
- 剩余时间(秒),-1表示已过期或不存在
-
getTimeoutChannel
public org.springframework.data.redis.listener.ChannelTopic getTimeoutChannel()获取超时监听频道- Returns:
- 超时监听频道
-
getRedisTemplate
获取RedisTemplate,用于测试和调试- Returns:
- RedisTemplate实例
-