Class ThreadTransferTimeoutService

java.lang.Object
com.bytedesk.service.thread_transfer.ThreadTransferTimeoutService

@Service("threadTransferTimeoutService") public class ThreadTransferTimeoutService extends Object
  • Field Details

    • TRANSFER_TIMEOUT_KEY_PREFIX

      private static final String TRANSFER_TIMEOUT_KEY_PREFIX
      See Also:
    • redisTemplate

      @Autowired private org.springframework.data.redis.core.RedisTemplate<String,Object> redisTemplate
    • applicationContext

      @Autowired private org.springframework.context.ApplicationContext applicationContext
  • Constructor Details

    • ThreadTransferTimeoutService

      public ThreadTransferTimeoutService()
  • Method Details

    • createTimeoutTask

      public void createTimeoutTask(String transferUid, String messageUid, Long expireLength)
      创建转接超时倒计时任务
      Parameters:
      transferUid - 转接记录UID
      messageUid - 消息UID
      expireLength - 超时时间(秒)
    • cancelTimeoutTask

      public void cancelTimeoutTask(String transferUid)
      取消转接超时倒计时任务
      Parameters:
      transferUid - 转接记录UID
    • onKeyExpired

      public void onKeyExpired(String message)
      处理Redis key过期事件 当Redis key过期时,此方法会被调用
      Parameters:
      message - 过期消息
    • handleTransferTimeout

      private void handleTransferTimeout(String transferUid)
      处理转接超时
      Parameters:
      transferUid - 转接记录UID
    • isTransferTimeout

      public boolean isTransferTimeout(String transferUid)
      检查转接是否已超时
      Parameters:
      transferUid - 转接记录UID
      Returns:
      true if timeout, false otherwise
    • getRemainingTime

      public long getRemainingTime(String transferUid)
      获取转接剩余时间
      Parameters:
      transferUid - 转接记录UID
      Returns:
      剩余时间(秒),-1表示已过期或不存在
    • getTimeoutChannel

      public org.springframework.data.redis.listener.ChannelTopic getTimeoutChannel()
      获取超时监听频道
      Returns:
      超时监听频道
    • getRedisTemplate

      public org.springframework.data.redis.core.RedisTemplate<String,Object> getRedisTemplate()
      获取RedisTemplate,用于测试和调试
      Returns:
      RedisTemplate实例