完整案例 實現延遲佇列的兩種方法

2021-10-25 08:31:04 字數 834 閱讀 6742

延遲佇列是指把當前要做的事情,往後推遲一段時間再做。

延遲佇列在實際工作中和面試中都比較常見,它的實現方式有很多種,然而每種實現方式也都有它的優缺點,接下來我們來看。

延遲佇列的常見使用場景有以下幾種:

超過 30 分鐘未支付的訂單,將會被取消

外賣商家超過 5 分鐘未接單的訂單,將會被取消

在平台註冊但 30 天內未登入的使用者,發簡訊提醒

等類似的應用場景,都可以使用延遲佇列來實現。

redis 延遲佇列實現的思路、優點:目前市面上延遲佇列的實現方式基本分為三類,第一類是通過程式的方式實現,例如 jdk 自帶的延遲佇列 delayqueue,第二類是通過 mq 框架來實現,例如 rabbitmq 可以通過 rabbitmq-delayed-message-exchange 外掛程式來實現延遲佇列,第三類就是通過 redis 的方式來實現延遲佇列。

程式實現方式

jdk 自帶的 delayqueue 實現延遲佇列,**如下:

public class delaytest {

public static void main(string args) throws interruptedexception {

delayqueue delayqueue = new delayqueue();

delayqueue.put(new delayelement(1000));

delayqueue.put(new delayelement(3000));

delayqueue.put(new delayelement(5000));

sys

用佇列實現棧的兩種方法

用佇列實現棧。方法一 用兩個佇列實現棧 兩個佇列,乙個用於存資料,乙個用於中轉,使用不固定。同一時刻兩個佇列不可能同時有資料。實現棧的操作就是將數在這兩個佇列中不斷轉移。入棧 選擇不為空的佇列加入資料,如果都為空,則加入佇列2.出棧時 將不為空的佇列的資料依次加入另乙個佇列中直至佇列只剩下乙個數,將...

邊緣檢測 兩種方法實現

import cv2 import numpy from scipy import ndimage def strokeedges src,dst,blurksize,edgeksize src numpy.array src yuansrc src dst numpy.array dst if b...

實現窗體拖動的兩種方法

方法1 系統訊息 protected override void wndproc ref message msg 方法2 事件 private int mx 0,my 0 private bool mc false protected override void onmousedown mousee...