成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

Delayer 基于 Redis 的延遲消息隊(duì)列中間件

Xufc / 1663人閱讀

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

Delayer

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

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

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

應(yīng)用場景

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

訂單完成后, 如果用戶一直未評(píng)價(jià), 5天后自動(dòng)好評(píng)。

會(huì)員到期前3天,短信通知續(xù)費(fèi)。

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

實(shí)現(xiàn)原理

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

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

核心特征

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

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

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

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

如何使用

delayer 分為:

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

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

服務(wù)器端

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

支持 windows、linux、mac 三種平臺(tái)

然后修改配置文件 delayer.conf

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

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

查看幫助:

[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

啟動(dòng):

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

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

根據(jù)對(duì)應(yīng)項(xià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)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/29574.html

相關(guān)文章

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

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

    tainzhi 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<