根據訪客預約的到訪時間,延時下發人臉資訊
先安裝rabbitmq,在安裝延時佇列外掛程式(死信交換機)
配置檔案(佇列+交換機+routingkey)
org.springframework.boot
spring-boot-starter-amqp
com.alibaba
fastjson
1.2.62
@configuration
public
class
facedelayqueueconfig
@bean
public queue facedelayqueue()
@bean
public binding facedelaybinding()
}
佇列訊息實體
public
class
facerabbitaddmessage
implements
serializable
訊息生產者
@service
public
class
facerabbitmessageserviceimpl);
}}
訊息消費者
@component
@rabbitlistener
(queues = facedelayqueueconfig.face_queue_delay)
public
class
facerabbitmessagereceiver
}
Redis 延時佇列
延時佇列可以通過 redis 的 zset 有序列表 來實現。我們將訊息序列化成乙個字串作為 zset 的 value,這個訊息的到期處理時間作為 score,然後用多個執行緒輪詢 zset 獲取到期的任務進行處理,多個執行緒是為了保障可用性,萬一掛了乙個執行緒還有其它執行緒可以繼續處理。因為有多個...
mysql 延時佇列 rabbitmq 延時佇列
前言 某個產品 或者訂單,有個有效期 過了有效期要取消 方法一 寫個指令碼,用crontab 定時掃瞄 改變狀態 但是最低只能一分鐘 不適合 方法二 用swoole得毫秒定時器,每秒鐘去掃瞄表 明顯占用資源 mysql受不了 方法三 用rabbitmq延時佇列 一開始將其丟入mq 死信佇列,設定有效...
利用延時佇列實現自動定時重試 基於PHP實現
搭建 框架 建立 test 目錄,編寫生產者和消費者 跑指令碼 phpamqplib channel connection exception exchange helper protocol message wire io test retryp.php retryc.php index.php ...