精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

訂單超時自動取消的七種方案,我用這種!

開發(fā) 前端
每種方案都有自己的適用場景,大家在選擇的時候,記得結(jié)合業(yè)務(wù)需求、訂單量、并發(fā)量來綜合考慮。如果你的項目規(guī)模較小,可以直接用延時隊列或 Redis;而在大型高并發(fā)系統(tǒng)中,消息隊列和事件流處理往往是首選。

前言

在電商、外賣、票務(wù)等系統(tǒng)中,訂單超時未支付自動取消是一個常見的需求。

這個功能乍一看很簡單,甚至很多初學(xué)者會覺得:"不就是加個定時器么?" 但真到了實際工作中,細(xì)節(jié)的復(fù)雜程度往往會超乎預(yù)期。

這里我們從基礎(chǔ)到高級,逐步分析各種實現(xiàn)方案,最后分享一些在生產(chǎn)中常見的優(yōu)化技巧,希望對你會有所幫助。

1. 使用延時隊列(DelayQueue)

適用場景:訂單數(shù)量較少,系統(tǒng)并發(fā)量不高。

延時隊列是Java并發(fā)包(java.util.concurrent)中的一個數(shù)據(jù)結(jié)構(gòu),專門用于處理延時任務(wù)。

訂單在創(chuàng)建時,將其放入延時隊列,并設(shè)置超時時間。

延時時間到了以后,隊列會觸發(fā)消費邏輯,執(zhí)行取消操作。

示例代碼:

import java.util.concurrent.*;

public class OrderCancelService {
    private static final DelayQueue<OrderTask> delayQueue = new DelayQueue<>();

    public static void main(String[] args) throws InterruptedException {
        // 啟動消費者線程
        new Thread(() -> {
            while (true) {
                try {
                    OrderTask task = delayQueue.take(); // 獲取到期任務(wù)
                    System.out.println("取消訂單:" + task.getOrderId());
                } catch (InterruptedException e) {
                    Thread.currentThread().interrupt();
                }
            }
        }).start();

        // 模擬訂單創(chuàng)建
        for (int i = 1; i <= 5; i++) {
            delayQueue.put(new OrderTask(i, System.currentTimeMillis() + 5000)); // 5秒后取消
            System.out.println("訂單" + i + "已創(chuàng)建");
        }
    }

    static class OrderTask implements Delayed {
        private final long expireTime;
        private final int orderId;

        public OrderTask(int orderId, long expireTime) {
            this.orderId = orderId;
            this.expireTime = expireTime;
        }

        public int getOrderId() {
            return orderId;
        }

        @Override
        public long getDelay(TimeUnit unit) {
            return unit.convert(expireTime - System.currentTimeMillis(), TimeUnit.MILLISECONDS);
        }

        @Override
        public int compareTo(Delayed o) {
            return Long.compare(this.expireTime, ((OrderTask) o).expireTime);
        }
    }
}

優(yōu)點:

  • 實現(xiàn)簡單,邏輯清晰。

缺點:

  • 依賴內(nèi)存,系統(tǒng)重啟會丟失任務(wù)。
  • 隨著訂單量增加,內(nèi)存占用會顯著上升。

2. 基于數(shù)據(jù)庫輪詢

適用場景:訂單數(shù)量較多,但系統(tǒng)對實時性要求不高。

輪詢是最容易想到的方案:定期掃描數(shù)據(jù)庫,將超時的訂單狀態(tài)更新為“已取消”。

示例代碼:

public void cancelExpiredOrders() {
    String sql = "UPDATE orders SET status = 'CANCELLED' WHERE status = 'PENDING' AND create_time < ?";
    try (Connection conn = dataSource.getConnection();
         PreparedStatement ps = conn.prepareStatement(sql)) {
        ps.setTimestamp(1, new Timestamp(System.currentTimeMillis() - 30 * 60 * 1000)); // 30分鐘未支付取消
        int affectedRows = ps.executeUpdate();
        System.out.println("取消訂單數(shù)量:" + affectedRows);
    } catch (SQLException e) {
        e.printStackTrace();
    }
}

優(yōu)點:

  • 數(shù)據(jù)可靠性強(qiáng),不依賴內(nèi)存。
  • 實現(xiàn)成本低,無需引入第三方組件。

缺點:

  • 頻繁掃描數(shù)據(jù)庫,會帶來較大的性能開銷。
  • 實時性較差(通常定時任務(wù)間隔為分鐘級別)。

優(yōu)化建議:

  • 為相關(guān)字段加索引,避免全表掃描。
  • 結(jié)合分表分庫策略,減少單表壓力。

3. 基于Redis隊列

適用場景:適合對實時性有要求的中小型項目。

Redis 的 List 或 Sorted Set 數(shù)據(jù)結(jié)構(gòu)非常適合用作延時任務(wù)隊列。

我們可以把訂單的超時時間作為 Score,訂單 ID 作為 Value 存到 Redis 的 ZSet 中,定時去取出到期的訂單進(jìn)行取消。

例子:

public void addOrderToQueue(String orderId, long expireTime) {
    jedis.zadd("order_delay_queue", expireTime, orderId);
}

public void processExpiredOrders() {
    long now = System.currentTimeMillis();
    Set<String> expiredOrders = jedis.zrangeByScore("order_delay_queue", 0, now);
    for (String orderId : expiredOrders) {
        System.out.println("取消訂單:" + orderId);
        jedis.zrem("order_delay_queue", orderId); // 刪除已處理的訂單
    }
}

優(yōu)點:

  • 實時性高。
  • Redis 的性能優(yōu)秀,延遲小。

缺點:

  • Redis 容量有限,適合中小規(guī)模任務(wù)。
  • 需要額外處理 Redis 宕機(jī)或數(shù)據(jù)丟失的問題。

4. Redis Key 過期回調(diào)

適用場景:對超時事件實時性要求高,并且希望依賴 Redis 本身的特性實現(xiàn)簡單的任務(wù)調(diào)度。

Redis 提供了 Key 的過期功能,結(jié)合 keyevent 事件通知機(jī)制,可以實現(xiàn)訂單的自動取消邏輯。

當(dāng)訂單設(shè)置超時時間后,Redis 會在 Key 過期時發(fā)送通知,我們只需要訂閱這個事件并進(jìn)行相應(yīng)的處理。

例子:

  • 設(shè)置訂單的過期時間:
public void setOrderWithExpiration(String orderId, long expireSeconds) {
    jedis.setex("order:" + orderId, expireSeconds, "PENDING");
}
  • 訂閱 Redis 的過期事件:
public void subscribeToExpirationEvents() {
    Jedis jedis = new Jedis("localhost");
    jedis.psubscribe(new JedisPubSub() {
        @Override
        public void onPMessage(String pattern, String channel, String message) {
            if (channel.equals("__keyevent@0__:expired")) {
                System.out.println("接收到過期事件,取消訂單:" + message);
                // 執(zhí)行取消訂單的業(yè)務(wù)邏輯
            }
        }
    }, "__keyevent@0__:expired"); // 訂閱過期事件
}

優(yōu)點:

  • 實現(xiàn)簡單,直接利用 Redis 的過期機(jī)制。
  • 實時性高,過期事件觸發(fā)后立即響應(yīng)。

缺點:

  • 依賴 Redis 的事件通知功能,需要開啟 notify-keyspace-events 配置。
  • 如果 Redis 中大量使用過期 Key,可能導(dǎo)致性能問題。

注意事項:要使用 Key 過期事件,需要確保 Redis 配置文件中 notify-keyspace-events 的值包含 Ex。比如:

notify-keyspace-events Ex

5. 基于消息隊列(如RabbitMQ)

適用場景:高并發(fā)系統(tǒng),實時性要求高。

訂單創(chuàng)建時,將訂單消息發(fā)送到延遲隊列(如RabbitMQ 的 x-delayed-message 插件)。

延遲時間到了以后,消息會重新投遞到消費者,消費者執(zhí)行取消操作。

示例代碼(以RabbitMQ為例):

public void sendOrderToDelayQueue(String orderId, long delay) {
    Map<String, Object> args = new HashMap<>();
    args.put("x-delayed-type", "direct");
    ConnectionFactory factory = new ConnectionFactory();
    try (Connection connection = factory.newConnection();
         Channel channel = connection.createChannel()) {
        channel.exchangeDeclare("delayed_exchange", "x-delayed-message", true, false, args);
        channel.queueDeclare("delay_queue", true, false, false, null);
        channel.queueBind("delay_queue", "delayed_exchange", "order.cancel");

        AMQP.BasicProperties props = new AMQP.BasicProperties.Builder()
                .headers(Map.of("x-delay", delay)) // 延遲時間
                .build();
        channel.basicPublish("delayed_exchange", "order.cancel", props, orderId.getBytes());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

優(yōu)點:

  • 消息隊列支持分布式,高并發(fā)下表現(xiàn)優(yōu)秀。
  • 數(shù)據(jù)可靠性高,不容易丟消息。

缺點:

  • 引入消息隊列增加了系統(tǒng)復(fù)雜性。
  • 需要處理隊列堆積的問題。

6. 使用定時任務(wù)框架

適用場景:訂單取消操作復(fù)雜,需要分布式支持。

定時任務(wù)框架,比如:Quartz、Elastic-Job,能夠高效地管理任務(wù)調(diào)度,適合處理批量任務(wù)。

比如 Quartz 可以通過配置 Cron 表達(dá)式,定時執(zhí)行訂單取消邏輯。

示例代碼:

@Scheduled(cron = "0 */5 * * * ?")
public void scanAndCancelOrders() {
    System.out.println("開始掃描并取消過期訂單");
    // 這里調(diào)用數(shù)據(jù)庫更新邏輯
}

優(yōu)點:

  • 成熟的調(diào)度框架支持復(fù)雜任務(wù)調(diào)度。
  • 靈活性高,支持分布式擴(kuò)展。

缺點:

  • 對實時性支持有限。
  • 框架本身較復(fù)雜。

7. 基于觸發(fā)式事件流處理

適用場景:需要處理實時性較高的訂單取消,同時結(jié)合復(fù)雜業(yè)務(wù)邏輯,例如根據(jù)用戶行為動態(tài)調(diào)整超時時間。

可以借助事件流處理框架(如 Apache Flink 或 Spark Streaming),實時地處理訂單狀態(tài),并觸發(fā)超時事件。

每個訂單生成后,可以作為事件流的一部分,訂單未支付時通過流計算觸發(fā)超時取消邏輯。

示例代碼(以 Apache Flink 為例):

DataStream<OrderEvent> orderStream = env.fromCollection(orderEvents);

orderStream
    .keyBy(OrderEvent::getOrderId)
    .process(new KeyedProcessFunction<String, OrderEvent, Void>() {
        @Override
        public void processElement(OrderEvent event, Context ctx, Collector<Void> out) throws Exception {
            // 注冊一個定時器
            ctx.timerService().registerProcessingTimeTimer(event.getTimestamp() + 30000); // 30秒超時
        }

        @Override
        public void onTimer(long timestamp, OnTimerContext ctx, Collector<Void> out) throws Exception {
            // 定時器觸發(fā),執(zhí)行訂單取消邏輯
            System.out.println("訂單超時取消,訂單ID:" + ctx.getCurrentKey());
        }
    });

優(yōu)點:

  • 實時性高,支持復(fù)雜事件處理邏輯。
  • 適合動態(tài)調(diào)整超時時間,滿足靈活的業(yè)務(wù)需求。

缺點:

  • 引入了流計算框架,系統(tǒng)復(fù)雜度增加。
  • 對運維要求較高。

總結(jié)

每種方案都有自己的適用場景,大家在選擇的時候,記得結(jié)合業(yè)務(wù)需求、訂單量、并發(fā)量來綜合考慮。

如果你的項目規(guī)模較小,可以直接用延時隊列或 Redis;而在大型高并發(fā)系統(tǒng)中,消息隊列和事件流處理往往是首選。

當(dāng)然,代碼實現(xiàn)只是第一步,更重要的是在實際部署和運行中進(jìn)行性能調(diào)優(yōu),保證系統(tǒng)的穩(wěn)定性。

希望這篇文章能給大家一些啟發(fā),也歡迎討論其他可能的實現(xiàn)思路!

責(zé)任編輯:武曉燕 來源: 蘇三說技術(shù)
相關(guān)推薦

2023-01-30 08:12:53

訂單超時自動取消延長訂單

2022-12-01 08:25:03

訂單超時定時任務(wù)

2024-02-26 08:50:37

訂單自動取消消息

2022-07-30 10:08:06

MQTT?協(xié)議物聯(lián)網(wǎng)

2025-08-01 09:25:30

2023-09-19 15:33:50

Web實時消息推送

2025-08-05 08:30:08

2021-11-29 09:15:57

Github網(wǎng)絡(luò)Python

2024-08-01 11:38:40

2025-05-13 08:20:58

2022-04-26 05:55:52

網(wǎng)絡(luò)網(wǎng)絡(luò)類型

2025-01-21 08:00:00

限流微服務(wù)算法

2025-02-24 16:00:00

SpringBoot定時任務(wù)開發(fā)

2020-01-14 08:00:00

.NET緩存編程語言

2022-05-10 08:08:01

find命令Linux

2019-04-17 09:00:00

DevOps基礎(chǔ)架構(gòu)代碼工具

2010-10-15 10:02:01

Mysql表類型

2017-08-31 14:57:53

數(shù)據(jù)庫MySQLJOIN

2017-06-02 09:52:50

2010-08-31 10:57:36

點贊
收藏

51CTO技術(shù)棧公眾號

9191精品国产综合久久久久久| 91亚洲精品久久久蜜桃网站| 欧美成年人在线观看| 国产伦精品一区二区三区妓女下载 | 精品久久久久久久久中文字幕 | 亚洲色图 校园春色| 日韩av网站在线观看| 久久午夜a级毛片| 亚洲欧美在线不卡| 伊人久久大香| 大桥未久av一区二区三区| 亚洲最大免费| 天堂中文字幕在线| 看电视剧不卡顿的网站| 国自产精品手机在线观看视频| 在线观看免费黄色网址| 动漫视频在线一区| 欧美日韩激情一区二区| 久久久久免费看黄a片app| 在线观看a视频| 成人国产精品免费网站| 国产精选久久久久久| 亚洲免费激情视频| 亚洲精品中文字幕乱码| 亚洲一区第一页| 亚洲少妇18p| 国产va免费精品观看精品| 99久久国产宗和精品1上映| 99福利在线观看| 免费大片黄在线观看视频网站| 成人黄色在线视频| 91精品久久久久久| 特级西西444www大精品视频免费看| 999久久久国产精品| 亚洲精品影视在线观看| 人妻激情偷乱频一区二区三区| 国产三级一区| 日本高清无吗v一区| 国产中文字幕乱人伦在线观看| 美女羞羞视频在线观看| 国产欧美精品一区二区色综合朱莉| 国产精品一区而去| 精品人妻无码一区二区| 久久精品国产77777蜜臀| 日本久久久久亚洲中字幕| 久久久久久久久久综合| 中文一区一区三区免费在线观看| 中文字幕亚洲一区二区三区五十路| 艳妇乳肉亭妇荡乳av| 影音先锋欧美激情| 日韩欧美中文一区二区| 日本网站在线看| 91精品一久久香蕉国产线看观看| 欧美私人免费视频| 99草草国产熟女视频在线| 成人免费短视频| 色又黄又爽网站www久久| 99999精品视频| 丝袜老师在线| 欧美视频在线免费看| 成人综合视频在线| 成人性生活av| 欧洲视频一区二区| 亚洲免费一级视频| 欧美少妇激情| 538prom精品视频线放| 九一精品久久久| 另类视频一区二区三区| 日韩免费在线观看| 你懂的在线观看网站| 青青草原在线亚洲| 精品中文视频在线| 最新中文字幕av| 天天射—综合中文网| 欧美成aaa人片在线观看蜜臀| 欧美极品视频在线观看| 国自产拍偷拍福利精品免费一| 久久久视频免费观看| www.日本精品| 人妖欧美一区二区| 91久久国产精品91久久性色| 午夜精品久久久久久久爽| 成人成人成人在线视频| 日韩av图片| av黄在线观看| 欧美日韩一区二区三区在线免费观看| 日韩中文字幕二区| 综合久久伊人| 亚洲精品v欧美精品v日韩精品| 久久无码专区国产精品s| 亚欧日韩另类中文欧美| 色视频www在线播放国产成人 | 久久久99久久精品欧美| 亚洲一区在线免费| 国产精品蜜臀| 色激情天天射综合网| 天堂av在线8| 国产精品一线| 一区二区三区久久精品| 在线免费日韩av| 销魂美女一区二区三区视频在线| 国产精品视频自拍| 亚洲国产一二三区| 国产亲近乱来精品视频| 成年在线观看视频| 唐人社导航福利精品| 91麻豆精品国产自产在线观看一区| 中文字幕乱视频| 精品99久久| 欧美另类xxx| 午夜精品久久久久久久蜜桃| 国产成人啪免费观看软件| 欧美理论一区二区| 中文在线观看免费| 欧美性猛片xxxx免费看久爱| 一级黄色电影片| 欧美肉体xxxx裸体137大胆| 久久久亚洲影院| 一级黄色片免费| 久久综合九色综合欧美98| 99视频精品全部免费看| 777午夜精品电影免费看| 精品国产乱子伦一区| 国产又黄又粗又猛又爽的| 国产一级久久| 超碰97网站| caopeng在线| 尤物av一区二区| jizzzz日本| 欧美性生活一级片| 久久久久成人精品| 国产不卡精品视频| 综合久久久久综合| 欧美精品性生活| 国产一区二区精品福利地址| 性色av一区二区三区红粉影视| 性做久久久久久久| 日韩美女视频一区二区 | 亚洲精品福利资源站| 欧美xxxx黑人xyx性爽| 美女爽到高潮91| 欧美一区二区在线视频观看| 蜜桃视频m3u8在线观看| 亚洲成人在线网| 国产真实乱人偷精品视频| 国产一区不卡精品| 久久久久亚洲av无码专区喷水| 国产精品蜜月aⅴ在线| 在线免费观看羞羞视频一区二区| 免费黄色av片| 国产日韩精品一区| 亚洲色图38p| 精品亚洲成人| 国产精品十八以下禁看| 在线免费观看的av网站| 欧美撒尿777hd撒尿| 色撸撸在线视频| 久久国产乱子精品免费女| 午夜精品区一区二区三| 国产极品嫩模在线观看91精品| 在线观看成人黄色| 91国在线视频| 亚洲黄一区二区三区| av在线天堂网| 国产精品乱看| 日韩欧美一区二区在线观看| 国产a亚洲精品| 久久九九国产精品怡红院 | 国产高清视频免费在线观看| 美女视频一区在线观看| 永久免费看av| 日韩中文av| 国产精品高清在线| 九色porny丨首页在线| 日韩精品在线一区| 中文字幕激情小说| 欧美国产1区2区| 色姑娘综合天天| 亚洲美女网站| 亚洲国产精品一区二区第一页| 成人污版视频| 97在线视频一区| 国产色a在线| 欧美一级片免费看| 免费污污视频在线观看| 国产精品成人网| 波多野结衣办公室双飞 | 亚洲图色中文字幕| 红桃视频欧美| 日韩一区国产在线观看| 免费精品一区二区三区在线观看| 91精品国产91久久久久久久久 | 理论片在线不卡免费观看| 亚洲免费不卡视频| 在线视频综合导航| 亚洲国产成人精品综合99| 97久久精品人人爽人人爽蜜臀| 国产小视频精品| 欧美亚洲不卡| 色综合久久88色综合天天提莫| 免费看一区二区三区| 国产99久久久欧美黑人 | 你懂的网站在线| 在线观看国产日韩| 国产精品1000| 国产精品成人在线观看| 日本黄色特级片| 国产精品香蕉一区二区三区| 亚洲成人福利在线观看| 激情婷婷久久| 国产精品美女在线播放| 免费看av成人| 国产精品日韩一区二区免费视频| 国产激情欧美| 日韩免费视频在线观看| 免费网站在线观看人| 自拍偷拍亚洲欧美| 免费毛片在线| 日韩精品中文字幕在线观看| www.色播.com| 欧美吻胸吃奶大尺度电影| 五月天婷婷综合网| 亚洲一区二区欧美激情| 日韩三级久久久| 国产拍欧美日韩视频二区| 国产一级伦理片| 国产精品99久久久| www.com久久久| 免费成人美女在线观看.| 六月丁香婷婷激情| 在线精品观看| 久久精品xxx| 欧美日韩成人| 国产激情片在线观看| 五月激情综合| 中文字幕一区综合| 色777狠狠狠综合伊人| 视频一区二区三区免费观看| 九九亚洲精品| 欧美一区激情视频在线观看| 美女毛片一区二区三区四区| 久久久久久国产精品mv| 美女视频免费精品| 久久综合婷婷综合| 日韩av中文字幕一区| 国产精品亚洲一区| 欧美wwwsss9999| 久久久国产精品一区二区三区| 日韩深夜福利| 欧美日韩一区在线视频| 校园春色另类视频| 日本欧洲国产一区二区| 欧美日韩国产免费观看视频| 日本成人看片网址| 日韩精品一区二区三区免费观看| 午夜精品一区二区在线观看 | 成人美女在线观看| 丰满人妻一区二区三区免费视频棣| 国产精品77777竹菊影视小说| 三级黄色片免费看| 福利一区二区在线| 中国xxxx性xxxx产国| 91视频精品在这里| 国产三级av在线播放| 国产欧美精品一区二区色综合朱莉| 黑人と日本人の交わりビデオ| 国产精品久久久久三级| 破处女黄色一级片| 亚洲图片欧美色图| 天堂а√在线中文在线新版| 91久久精品一区二区| 亚洲综合网av| 日韩一区国产二区欧美三区| 性欧美18一19性猛交| 日韩成人高清在线| 成人不用播放器| 欧美成aaa人片在线观看蜜臀| 成人在线高清免费| 日韩美女视频免费在线观看| 四虎国产精品永久在线国在线| 亚洲aa在线观看| 麻豆一区二区| 一区二区冒白浆视频| 极品av少妇一区二区| 国产免费成人在线| 国产一区二区三区久久久| 国产av一区二区三区传媒| 不卡的av中国片| 亚洲精品国产精品国自| 夜夜精品视频一区二区| 久久黄色精品视频| 欧美精品 国产精品| 色网站免费观看| 色播久久人人爽人人爽人人片视av| 密臀av在线| 国产91热爆ts人妖在线| 欧州一区二区三区| 品久久久久久久久久96高清| 欧美一区久久| 九九热免费精品视频| 懂色av一区二区三区免费看| 一级在线观看视频| 亚洲福利视频一区二区| 影音先锋国产在线| 亚洲国产成人在线播放| 秋霞影院午夜丰满少妇在线视频| 51ⅴ精品国产91久久久久久| 国产精品亚洲一区二区在线观看| 久久久久久久久一区二区| 欧美黄色一区| 久久99爱视频| 91日韩精品一区| 久久高清无码视频| 欧美浪妇xxxx高跟鞋交| 六十路在线观看| 午夜精品一区二区三区在线视频 | 免费网站在线观看人| 国产乱肥老妇国产一区二| 日韩中出av| 国产xxxx振车| 免费人成黄页网站在线一区二区| 800av在线播放| 亚洲一区二区三区四区不卡| 国产熟女一区二区丰满| 中文字幕欧美日韩精品| 国产精欧美一区二区三区蓝颜男同| www.成人三级视频| 中文字幕一区二区三区在线视频| 亚洲xxx在线观看| 久久色中文字幕| 91久久国产视频| 亚洲国产成人在线播放| 黄页网站在线观看免费| 成人一区二区电影| 2023国产精品久久久精品双| 91看片在线免费观看| 中文字幕精品综合| 国产主播第一页| 国产午夜精品一区二区三区 | 日韩欧美精品网址| 五月天激情婷婷| 久久人人爽人人| 第四色中文综合网| 妞干网在线视频观看| 成年人网站91| 日韩成人av毛片| 亚洲精品国产成人| 超碰国产一区| 相泽南亚洲一区二区在线播放 | 四虎影视在线播放| 国产91精品久久久久久| 外国成人在线视频| 日韩网址在线观看| 国产欧美视频一区二区三区| 波多野结衣毛片| 中文字幕亚洲一区二区三区五十路| 成人国产一区| 国产精品av免费| 国产xxx精品视频大全| 国产无遮挡裸体免费视频| 欧美精品一区二区三区蜜桃视频| brazzers在线观看| 久久精品成人一区二区三区蜜臀| 毛片一区二区| 我想看黄色大片| 91精品国产综合久久久久久漫画 | 国产成人美女视频| 亚洲女厕所小便bbb| 亚洲毛片在线播放| 日本不卡视频在线播放| 三级电影一区| 中文字幕亚洲日本| 欧美日韩免费观看中文| 国产经典自拍视频在线观看| 国产在线视频欧美| 欧美日韩蜜桃| ass精品国模裸体欣赏pics| 在线观看国产91| 亚洲丝袜精品| 久久综合久久久| 激情综合五月婷婷| 日韩在线观看第一页| 在线观看不卡av| 综合成人在线| 狠狠热免费视频| 亚洲激情成人在线| 美女做暖暖视频免费在线观看全部网址91 | 久久99精品国产一区二区三区| 久热精品视频| 欧美日韩一级在线观看| 亚洲九九九在线观看| 亚洲久草在线| 欧美日韩在线一| 亚洲欧美影音先锋| 涩爱av在线播放一区二区| 国产有码在线一区二区视频| 亚洲麻豆视频| 少妇人妻丰满做爰xxx| 亚洲欧美精品suv| 亚洲第一二区|