<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

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

        來源:懂視網 責編:小采 時間:2020-11-27 14:43:20
        文檔

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

        使用swoole 定時器變更超時未支付訂單狀態的解決方案:如果對幾種方案沒有很好的想法,可以先看一下延伸閱讀里的其他方案,是一篇laravel china社區的討論 借助 swoole 定時器和 redis 的 zset 來實現的定時檢查并過期未支付訂單 起源于一個需求:將30分鐘內未支付的訂單過期處理成已失效狀態。 最常規簡單的解決
        推薦度:
        導讀使用swoole 定時器變更超時未支付訂單狀態的解決方案:如果對幾種方案沒有很好的想法,可以先看一下延伸閱讀里的其他方案,是一篇laravel china社區的討論 借助 swoole 定時器和 redis 的 zset 來實現的定時檢查并過期未支付訂單 起源于一個需求:將30分鐘內未支付的訂單過期處理成已失效狀態。 最常規簡單的解決

        如果對幾種方案沒有很好的想法,可以先看一下延伸閱讀里的其他方案,是一篇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 定時器變更超時未支付訂單狀態的解決方案,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
        如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

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

        使用swoole 定時器變更超時未支付訂單狀態的解決方案:如果對幾種方案沒有很好的想法,可以先看一下延伸閱讀里的其他方案,是一篇laravel china社區的討論 借助 swoole 定時器和 redis 的 zset 來實現的定時檢查并過期未支付訂單 起源于一個需求:將30分鐘內未支付的訂單過期處理成已失效狀態。 最常規簡單的解決
        推薦度:
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 青草草色A免费观看在线| 久久久久国产精品免费免费不卡| 国产zzjjzzjj视频全免费| 午夜无遮挡羞羞漫画免费| 免费毛片a线观看| 天天影院成人免费观看| 成人免费看黄20分钟| 国产亚洲色视频在线| 亚洲精品中文字幕麻豆| 亚洲成a人无码亚洲成www牛牛| 香蕉国产在线观看免费| 88xx成人永久免费观看| 国产免费牲交视频| 国产午夜亚洲精品不卡免下载| 久久精品无码专区免费青青| 日韩亚洲一区二区三区| 亚洲成a人片在线不卡一二三区| 天天天欲色欲色WWW免费| 亚洲av无码有乱码在线观看| 99在线视频免费| 在线观看国产区亚洲一区成人| 亚洲一卡2卡4卡5卡6卡残暴在线| 男女男精品网站免费观看| 最近免费中文字幕4| 国产综合激情在线亚洲第一页| 亚洲精品色婷婷在线影院| 亚洲一区二区三区免费在线观看| 青青在线久青草免费观看| 亚洲国产无线乱码在线观看| 国产在线观看免费视频播放器| 亚洲精品国产日韩| 最近中文字幕大全免费视频| 亚洲资源最新版在线观看| 亚洲无砖砖区免费| 亚洲国产二区三区久久| 人妻免费久久久久久久了| 亚洲av无码一区二区三区不卡 | 国产亚洲视频在线观看| 久久精品国产亚洲AV不卡| 日本免费一区二区在线观看| 国产青草亚洲香蕉精品久久|