当前位置: 首页 > 面试经验 >

9.16顺丰二面 Java 40分钟

优质
小牛编辑
99浏览
2023-03-28

9.16顺丰二面 Java 40分钟

1.围绕项目,关于mq的内容
2.场景题设计:用redis设计延迟消息队列
3.手撕一道简单算法题,秒了
面试官特别好,会把他的理解都讲出来,场景题自己不专业,好多点没有考虑到。
关于2:将延迟任务加到Sorted Set,将延迟时间设为score;启动一个线程不断判断Sorted Set中第一个元素的score是否小于当前时间,如果小于,从Sorted Set中移除任务并添加到执行队列中;如果大于,进行短暂休眠后,重复上诉操作。
步骤(转):
  1. 在对于一个消息的创建进入Redis缓存之中,消息的元素的score设置为当前的时间戳或发布时间戳或过期时间。

  2. 开启执行轮询Redis的延时队列操作,获取队列的订单的标识,判断当前订单的score如果小于当前时间毫秒值,移除Redis队列中该消息。

  3. 一直重复上诉操作。


 类似资料: