好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > 使用swoole 定時器變更超時未支付訂單狀態的解決方案

使用swoole 定時器變更超時未支付訂單狀態的解決方案

熱門標簽:哪里辦理400電話 江西手機自動外呼防封系統是什么 怎么向銷售公司推銷外呼系統 外呼系統撥打暫時無法接通 仁和怎么申請400開頭的電話 廣州防封卡外呼系統多少錢一個月 長春人工外呼系統服務商 高德地圖標注家 廣東地市地圖標注

如果對幾種方案沒有很好的想法,可以先看一下延伸閱讀里的其他方案,是一篇laravel china社區的討論

借助 swoole 定時器和 redis 的 zset 來實現的定時檢查并過期未支付訂單

起源于一個需求:將30分鐘內未支付的訂單過期處理成已失效狀態。

最常規簡單的解決方案:在服務器上,跑一個定時任務,去數據表中查詢數據,查到未支付的訂單,update 一下這些數據的狀態,

這些數據也可以存在在 redis 中,大致操作都是這樣的。數據量少,服務器沒有很多壓力的時候,這幾種方案不會突出優劣,想用哪個用哪個。

另一種方案: 存儲部分: 借助 redis 的 zset 有序集合,訂單產生的時候, zadd orders timestamp orderid 將 orderid 保存到對應的

orders 集合中,以時間戳作為他的 score 分值,存儲部分是這樣的,簡單 + 占用空間內存極小。 讀取部分: 在 swoole 啟動時,設置定時器,每分鐘去 orders set 中讀取設置的時間之前的數據,個人為了測試方便,設置的讀取前一分鐘到前三十分鐘內的數據。獲取到數據之后,根據業務邏輯處理數據,然后 zrem orders orderid 命令從集合中移除對應的 orderid。 個人以為這個方案是內存占用和效率兼具的一個方案。 代碼如下:

order.php

?php$server = new swoole_websocket_server("0.0.0.0", 9502);
// 在定時器中使用協程需要增加此項配置
$server->set(
  [
    'enable_coroutine' => true
  ]
);
$server->on('workerStart', function ($server, $workerId) {
  $redis = new Swoole\Coroutine\Redis();
  $redis->connect('127.0.0.1', 6379);
  // tick 為持續觸發的定時器
  swoole_timer_tick(10000, function() use ($redis) {
    $upperLimitTime = strtotime('-1 minute');
    $lowerLimitTime = strtotime('-30 minute');
    echo '上限時間:' . $upperLimitTime . '下限時間:' . $lowerLimitTime;
    $result = $redis->zrangebyscore('orders', $lowerLimitTime, $upperLimitTime);
    var_dump($result);
    // 根據查詢到的 id 進行業務處理,然后 zrem orders orderid 移除處理成功的 orderid 
  });
});
$server->on('message', function (swoole_websocket_server $server, $request) {
  $server->push($request->fd, "hello");
});
$server->start();

測試過程: php order.php 開啟 swoole 監聽,然后新起終端,在 redis 的 orders 有序集合中不斷寫入新數據,效果如下圖:

延伸閱讀:

1.swoole_timer_tick 文檔

2.laravel china上的相關文章

總結

以上所述是小編給大家介紹的使用swoole 定時器變更超時未支付訂單狀態的解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

您可能感興趣的文章:
  • PHP框架Swoole定時器Timer特性分析
  • vue仿淘寶訂單狀態的tab切換效果

標簽:湘西 廈門 海北 黔東 惠州 梅河口 濮陽 文山

巨人網絡通訊聲明:本文標題《使用swoole 定時器變更超時未支付訂單狀態的解決方案》,本文關鍵詞  使用,swoole,定時器,變更,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《使用swoole 定時器變更超時未支付訂單狀態的解決方案》相關的同類信息!
  • 本頁收集關于使用swoole 定時器變更超時未支付訂單狀態的解決方案的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 写真福利片HD在线播放| c了瑜伽教练一节课视频| 久久久久久久久波多野高潮| 97亚洲成a人无码亚洲成a无码| 做a视频在线观看| 91午夜精品午夜剧场| 真实女性下身裸露图片| AV果冻传媒董小宛无码| 久爽无码人妻AⅤ精品噜噜,久| 天堂素人在线| 91免费永久国产在线观看| 日日干夜夜艹| 91精品久久久久久久久青青| 再深点灬再大点灬舒服| 男人脱女人的衣服| 女王羞辱丨vk| ??国产免费叼嘿网站免费| www.三级.com| 一级特黄网站| 欧美白人最猛性xxxxx| 海棠高h粗暴调教双性男男| 粗暴肉进入120秒免费| 午夜男女刺激爽爽影院免费视频| 欧美国产亚洲18| 后λ式吃奶动态后λ式视频| 久久性生活视频| 色偷偷少妇aⅴ| 麻花传媒免费观看| 夏尔是不是被轮了| 日韩精品久久日日躁夜夜躁影视 | 亚洲 欧美 日韩 精品 自拍| 五级女婬片的视频90分钟| 69看片色情免费| 免费看女人屁股扒开的心图片| se色成人亚洲综合| 美国fx性欧美xxxxhd| 韩国三级精品| 芳芳私拍局部人体写真| 天赐的声音第一季| 师生乱淫小说| 中文字幕久久久久久精品直播牛|