欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > redis實現(xiàn)延時隊列的兩種方式(小結(jié))

redis實現(xiàn)延時隊列的兩種方式(小結(jié))

熱門標簽:鄭州人工智能電銷機器人系統(tǒng) 日本中國地圖標注 十堰營銷電銷機器人哪家便宜 山東外呼銷售系統(tǒng)招商 魔獸2青云地圖標注 北京400電話辦理收費標準 宿遷便宜外呼系統(tǒng)平臺 貴州電銷卡外呼系統(tǒng) 超呼電話機器人

背景

項目中的流程監(jiān)控,有幾種節(jié)點,需要監(jiān)控每一個節(jié)點是否超時。按傳統(tǒng)的做法,肯定是通過定時任務(wù),去掃描然后判斷,但是定時任務(wù)有缺點:1,數(shù)據(jù)量大會慢;2,時間不好控制,太短,怕一次處理不完,太長狀態(tài)就會有延遲。所以就想到用延遲隊列的方式去實現(xiàn)。

一,redis的過期key監(jiān)控

1,開啟過期key監(jiān)聽

在redis的配置里把這個注釋去掉

notify-keyspace-events Ex

然后重啟redis

2,使用redis過期監(jiān)聽實現(xiàn)延遲隊列

繼承KeyExpirationEventMessageListener類,實現(xiàn)父類的方法,就可以監(jiān)聽key過期時間了。當有key過期,就會執(zhí)行這里。這里就把需要的key過濾出來,然后發(fā)送給kafka隊列。

@Component
@Slf4j
public class RedisKeyExpirationListener extends KeyExpirationEventMessageListener {

  @Autowired
  private KafkaProducerService kafkaProducerService;

  public RedisKeyExpirationListener(RedisMessageListenerContainer listenerContainer) {
    super(listenerContainer);
  }

  /**
   * 針對 redis 數(shù)據(jù)失效事件,進行數(shù)據(jù)處理
   * @param message
   * @param pattern
   */
  @Override
  public void onMessage(Message message, byte[] pattern){
    if(message == null || StringUtils.isEmpty(message.toString())){
      return;
    }
    String content = message.toString();
    //key的格式為  flag:時效類型:運單號 示例如下
    try {
      if(content.startsWith(AbnConstant.EMS)){
        kafkaProducerService.sendMessageSync(TopicConstant.EMS_WAYBILL_ABN_QUEUE,content);
      }else if(content.startsWith(AbnConstant.YUNDA)){
        kafkaProducerService.sendMessageSync(TopicConstant.YUNDA_WAYBILL_ABN_QUEUE,content);
      }
    } catch (Exception e) {
      log.error("監(jiān)控過期key,發(fā)送kafka異常,",e);
    }
  }
}

可以看的出來,這種方式其實是很簡單的,但是有幾個問題需要注意,一是,這個盡量單機運行,因為多臺機器都會執(zhí)行,浪費cpu,增加數(shù)據(jù)庫負擔。二是,機器頻繁部署的時候,如果有時間間隔,會出現(xiàn)數(shù)據(jù)的漏處理。

二,redis的zset實現(xiàn)延遲隊列

1,生產(chǎn)者實現(xiàn)

可以看到生產(chǎn)者很簡單,其實就是利用zset的特性,給一個zset添加元素而已,而時間就是它的score。

public void produce(Integer taskId, long exeTime) {
  System.out.println("加入任務(wù), taskId: " + taskId + ", exeTime: " + exeTime + ", 當前時間:" + LocalDateTime.now());
  RedisOps.getJedis().zadd(RedisOps.key, exeTime, String.valueOf(taskId));
}

2,消費者實現(xiàn)

消費者的代碼也不難,就是把已經(jīng)過期的zset中的元素給刪除掉,然后處理數(shù)據(jù)。

public void consumer() {
  Executors.newSingleThreadExecutor().submit(new Runnable() {
    @Override
    public void run() {
      while (true) {
        SetString> taskIdSet = RedisOps.getJedis().zrangeByScore(RedisOps.key, 0, System.currentTimeMillis(), 0, 1);
        if (taskIdSet == null || taskIdSet.isEmpty()) {
          System.out.println("沒有任務(wù)");
 
        } else {
          taskIdSet.forEach(id -> {
            long result = RedisOps.getJedis().zrem(RedisOps.key, id);
            if (result == 1L) {
              System.out.println("從延時隊列中獲取到任務(wù),taskId:" + id + " , 當前時間:" + LocalDateTime.now());
            }
          });
        }
        try {
          TimeUnit.MILLISECONDS.sleep(100);
        } catch (InterruptedException e) {
          e.printStackTrace();
        }
      }
    }
  });
}

可以看到這種方式其實是比上個方式要好的。因為,他的那兩個缺點都被克服掉了。多臺機器也沒事兒,也不用再擔心部署時間間隔長的問題。

總結(jié)

兩個方式都是不錯的,都能解決問題。碰到問題,多思考,多總結(jié)。

到此這篇關(guān)于redis實現(xiàn)延時隊列的兩種方式(小結(jié))的文章就介紹到這了,更多相關(guān)redis 延時隊列內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • golang實現(xiàn)redis的延時消息隊列功能示例
  • 使用Redis實現(xiàn)延時任務(wù)的解決方案
  • 利用Redis實現(xiàn)延時處理的方法實例

標簽:果洛 朝陽 吉安 江蘇 臺州 大慶 北京 楊凌

巨人網(wǎng)絡(luò)通訊聲明:本文標題《redis實現(xiàn)延時隊列的兩種方式(小結(jié))》,本文關(guān)鍵詞  redis,實現(xiàn),延時,隊列,的,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《redis實現(xiàn)延時隊列的兩種方式(小結(jié))》相關(guān)的同類信息!
  • 本頁收集關(guān)于redis實現(xiàn)延時隊列的兩種方式(小結(jié))的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    免费三级欧美电影| 免费一级黄色录像| 欧美色中文字幕| 亚洲欧美日韩国产成人精品影院| 国产精品一区二区黑丝| 亚洲色图日韩精品| 久久你懂得1024| 国产一区二三区好的| 成人黄色a级片| 久久久精品天堂| 国产大片一区二区| 国产精品国产精品88| 最新不卡av在线| 91在线视频免费观看| 欧美在线免费播放| 亚洲国产精品久久久久秋霞影院| 久久久久国产免费| 91精品国产综合久久精品app| 天天操天天色综合| 91久久免费视频| 久久精品亚洲麻豆av一区二区| 国产一区二区三区不卡在线观看| 国产黄色片在线| 国产精品看片你懂得| 亚洲电影一级片| 久久中文字幕电影| 久久99精品国产麻豆不卡| 第一次破处视频| 久久久久久久久久电影| 国产电影精品久久禁18| 91久久人澡人人添人人爽欧美| 一区二区三区在线观看网站| 国产伦精品一区二区三区精品| 日韩欧美不卡在线观看视频| 韩国av一区二区三区四区| 中日韩一级黄色片| 亚洲精品成人精品456| 你懂的在线观看网站| 久久亚洲一级片| 成人动漫一区二区在线| 欧美色爱综合网| 老司机午夜精品| 精品国产精品国产精品| 亚洲综合色区另类av| 成年人在线观看av| 国产目拍亚洲精品99久久精品| 93久久精品日日躁夜夜躁欧美| 91麻豆精品国产91久久久久久| 激情伊人五月天久久综合| 亚洲国产精品久| 日本午夜一区二区| 老熟妻内射精品一区| 亚洲电影第三页| www.日本高清视频| 一区二区三区在线高清| 国产精久久一区二区三区| 最新不卡av在线| 精品少妇一区二区三区免费观| 亚洲国产岛国毛片在线| 国产精品久久久久毛片软件| 无码国产精品一区二区免费式直播| 欧美精品一区二区三区在线播放| av网站免费线看精品| 欧美电视剧在线观看完整版| av毛片久久久久**hd| 精品久久久久久综合日本欧美 | 熟妇高潮一区二区| 国产夜色精品一区二区av| 中文字幕乱妇无码av在线| 久久久久国产精品麻豆ai换脸 | 日韩不卡一二三区| 成人免费视频国产免费观看| 日本成人在线视频网站| 色综合一个色综合| 久热成人在线视频| 欧美亚洲日本一区| 国产成人综合网| 欧美一级电影网站| 91麻豆自制传媒国产之光| xfplay精品久久| 国产精品一区二区无码对白| 国产精品无圣光一区二区| 在线观看日韩精品视频| 亚洲激情图片一区| 三级黄色录像视频| 久久精品国产一区二区三区免费看| 欧美视频自拍偷拍| 丁香婷婷综合网| 久久伊99综合婷婷久久伊| 男人网站在线观看| 亚洲欧美另类图片小说| 国产成人免费在线观看视频| 麻豆一区二区在线| 欧美精品久久一区二区三区| 播五月开心婷婷综合| 国产欧美一区二区精品婷婷 | 精品国产99国产精品| 三大队在线观看| 日韩一区有码在线| 国产三级aaa| 久久99精品国产.久久久久久 | 欧美精品在线一区二区三区| 99久久精品99国产精品 | 国产日韩精品一区| 永久免费看mv网站入口78| 午夜不卡av免费| 精品视频资源站| 99精品视频在线免费观看| 国产精品成人网| 日韩电影在线一区| 欧美日韩视频第一区| 91日韩一区二区三区| 日韩久久一区二区| 极品久久久久久| 国产a级毛片一区| 欧美激情艳妇裸体舞| 亚洲精品国产精品国自| 久久99精品国产.久久久久| 欧美一区二区黄| av无码一区二区三区| 五月天一区二区| 91麻豆精品国产自产在线| 农村末发育av片一区二区| 亚洲一区二区三区在线播放| 欧美自拍偷拍一区| xxxxwww一片| 亚洲午夜一区二区| 在线不卡中文字幕播放| 国产精品19p| 亚洲成av人综合在线观看| 欧美精品丝袜中出| 精品国产一区在线| 日本不卡视频一二三区| 精品国产一区二区三区av性色| 91久久免费视频| 国产一区二区0| 亚洲国产精品精华液2区45| 一级片一级片一级片| 不卡区在线中文字幕| 亚洲日本丝袜连裤袜办公室| 91久久精品网| 91超薄肉色丝袜交足高跟凉鞋| 日韩精品福利网| 26uuu亚洲| 蜜桃av.com| 99久久er热在这里只有精品66| 一区二区三区在线免费观看| 7799精品视频| xxx在线播放| 国产不卡在线播放| 亚洲男同1069视频| 777亚洲妇女| 久久久久亚洲AV成人无在| 成人免费av网站| 亚洲国产另类av| 26uuu另类欧美| www青青草原| 国产伦精品一区二区三区精品| 捆绑紧缚一区二区三区视频| 欧美国产综合一区二区| 欧洲精品一区二区三区在线观看| 男女一区二区三区| 国产专区综合网| 亚洲精品视频一区| 欧美一卡二卡三卡| 日韩精品久久久久久久的张开腿让| gogo大胆日本视频一区| 日本强好片久久久久久aaa| 国产午夜精品在线观看| 91福利视频网站| 在线免费观看成年人视频| 成人在线综合网站| 亚洲大尺度视频在线观看| 久久久99精品久久| 欧美在线短视频| 亚洲第一综合网| 91麻豆免费在线观看| 免费av网站大全久久| 中文字幕一区在线观看视频| 91精品在线免费| 夫妻性生活毛片| 在线精品一区二区三区| 福利一区二区在线观看| 首页国产欧美日韩丝袜| 欧美激情在线一区二区| 欧美欧美欧美欧美| 亚洲av无一区二区三区| 亚洲天堂2024| www.视频一区| 久久国产成人午夜av影院| 亚洲精品高清在线观看| 久久精品视频免费| 欧美高清你懂得| 午夜剧场免费在线观看| 三级黄色片网站| 91美女在线看| 国产成人亚洲综合a∨婷婷| 亚洲gay无套男同| 日本一区二区成人| 欧美va天堂va视频va在线|