亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Delayer 基于 Redis 的延遲消息隊列中間件

Xufc / 1726人閱讀

摘要:基于的延遲消息隊列中間件,采用開發(fā),支持等多種語言客戶端。參考有贊延遲隊列設(shè)計中的部分設(shè)計,優(yōu)化后實現(xiàn)。會員到期前天,短信通知續(xù)費。其他針對某個任務(wù),延遲執(zhí)行功能的需求。服務(wù)器端定時使用連接池并行將中到期的放入對應(yīng)的中,供客戶端取出。

Delayer

基于 Redis 的延遲消息隊列中間件,采用 Golang 開發(fā),支持 PHP、Golang 等多種語言客戶端。

參考 有贊延遲隊列設(shè)計 中的部分設(shè)計,優(yōu)化后實現(xiàn)。

項目鏈接:https://github.com/mixstart/d... ,有需要的朋友加 Star 哦。

應(yīng)用場景

訂單超過30分鐘未支付,自動關(guān)閉訂單。

訂單完成后, 如果用戶一直未評價, 5天后自動好評。

會員到期前3天,短信通知續(xù)費。

其他針對某個任務(wù),延遲執(zhí)行功能的需求。

實現(xiàn)原理

客戶端:push 任務(wù)時,任務(wù)數(shù)據(jù)存入 hash 中,jobID 存入 zset 中,pop 時從指定的 list 中取準(zhǔn)備好的數(shù)據(jù)。

服務(wù)器端:定時使用連接池并行將 zset 中到期的 jobID 放入對應(yīng)的 list 中,供客戶端 pop 取出。

核心特征

使用 Golang 開發(fā),高性能。

高可用,服務(wù)器端操作是原子的,且做了優(yōu)雅停止,不會丟失數(shù)據(jù)。

可通過配置文件控制執(zhí)行性能參數(shù)。

提供具體言語的 SDK,使用簡單快捷。

如何使用

delayer 分為:

服務(wù)器端:負(fù)責(zé)定時掃描到期的任務(wù),并放入隊列,需在服務(wù)器上常駐執(zhí)行。

客戶端:在代碼中使用,以類庫的形式,提供 pushpop、bPopremove 方法操作任務(wù)。

服務(wù)器端

在 https://github.com/mixstart/d... 中下載對應(yīng)平臺的程序。

支持 windows、linux、mac 三種平臺

然后修改配置文件 delayer.conf

[delayer]
pid = /var/run/delayer.pid      ; 單例執(zhí)行, 多實例執(zhí)行留空, Win不支持
timer_interval = 1000           ; 計算間隔時間, 單位毫秒
access_log = logs/access.log    ; 存取日志
error_log = logs/error.log      ; 錯誤日志

[redis]
host = 127.0.0.1                ; 連接地址
port = 6379                     ; 連接端口
database = 0                    ; 數(shù)據(jù)庫編號
password =                      ; 密碼, 無需密碼留空
max_idle = 2                    ; 最大空閑連接數(shù)
max_active = 20                 ; 最大激活連接數(shù)
idle_timeout = 3600             ; 空閑連接超時時間, 單位秒
conn_max_lifetime = 3600        ; 連接生存時間, 單位秒

查看幫助:

[root@localhost bin]# ./delayer -h
Usage: delayer [options]

Options:
-d/--daemon run in the background
-c/--configuration FILENAME -- configuration file path (searches if not given)
-h/--help -- print this usage message and exit
-v/--version -- print version number and exit

啟動:

[root@localhost bin]# ./delayer
    ____       __
   / __ \___  / /___ ___  _____  _____
  / / / / _ / / __ `/ / / / _ / ___/
 / /_/ /  __/ / /_/ / /_/ /  __/ /
/_____/\___/_/\__,_/\__, /\___/_/
                   /____/
Service:        delayer
Version:        1.0.1
[info] 2018/10/19 11:24:24 Service started successfully, PID: 31023
客戶端

我們提供了以下幾種語言:

根據(jù)對應(yīng)項目的說明使用

PHP:https://github.com/mixstart/d...

Golang:https://github.com/mixstart/d...

Java:待定

Python:待定

License

Apache License Version 2.0, http://www.apache.org/licenses/

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/29574.html

相關(guān)文章

  • 高并發(fā)異步解耦利器:RocketMQ究竟強(qiáng)在哪里?

    摘要:它是阿里巴巴于年開源的第三代分布式消息中間件。是一個分布式消息中間件,具有低延遲高性能和可靠性萬億級別的容量和靈活的可擴(kuò)展性,它是阿里巴巴于年開源的第三代分布式消息中間件。上篇文章消息隊列那么多,為什么建議深入了解下RabbitMQ?我們講到了消息隊列的發(fā)展史:并且詳細(xì)介紹了RabbitMQ,其功能也是挺強(qiáng)大的,那么,為啥又要搞一個RocketMQ出來呢?是重復(fù)造輪子嗎?本文我們就帶大家來詳...

    tainzhi 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<