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

3分鐘帶你搞定Spring Boot中Schedule

開發 前端
實際的業務開發過程中,我們經常會需要定時任務來幫助我們完成一些工作,例如每天早上 6 點生成銷售報表、每晚 23 點清理臟數據等等。

[[358511]]

 本文轉載自微信公眾號「Java極客技術」,作者鴨血粉絲。轉載本文請聯系Java極客技術公眾號。

一、摘要

閱讀完本文大概需要3分鐘,本文主要分享內容如下:

  • SpringBoot Schedule 實踐介紹

二、介紹

在實際的業務開發過程中,我們經常會需要定時任務來幫助我們完成一些工作,例如每天早上 6 點生成銷售報表、每晚 23 點清理臟數據等等。

如果你當前使用的是 SpringBoot 來開發項目,那么完成這些任務會非常容易!

SpringBoot 默認已經幫我們完成了相關定時任務組件的配置,我們只需要添加相應的注解@Scheduled就可以實現任務調度!

三、Schedule 實踐

3.1、pom 包配置

pom包里面只需要引入Spring Boot Starter包即可!

  1. <dependencies> 
  2.     <!--spring boot核心--> 
  3.     <dependency> 
  4.         <groupId>org.springframework.boot</groupId> 
  5.         <artifactId>spring-boot-starter</artifactId> 
  6.     </dependency> 
  7.     <!--spring boot 測試--> 
  8.     <dependency> 
  9.         <groupId>org.springframework.boot</groupId> 
  10.         <artifactId>spring-boot-starter-test</artifactId> 
  11.         <scope>test</scope> 
  12.     </dependency> 
  13. </dependencies> 

3.2、啟動類啟用定時調度

在啟動類上面加上@EnableScheduling即可開啟定時

  1. @SpringBootApplication 
  2. @EnableScheduling 
  3. public class ScheduleApplication { 
  4.  
  5.     public static void main(String[] args) { 
  6.         SpringApplication.run(ScheduleApplication.class, args); 
  7.     } 

3.3、創建定時任務

Spring Scheduler支持四種形式的任務調度!

  • fixedRate:固定速率執行,例如每5秒執行一次
  • fixedDelay:固定延遲執行,例如距離上一次調用成功后2秒執行
  • initialDelay:初始延遲任務,例如任務開啟過5秒后再執行,之后以固定頻率或者間隔執行
  • cron:使用 Cron 表達式執行定時任務

3.3.1、固定速率執行

你可以通過使用fixedRate參數以固定時間間隔來執行任務,示例如下:

  1. @Component 
  2. public class SchedulerTask { 
  3.  
  4.     private static final Logger log = LoggerFactory.getLogger(SchedulerTask.class); 
  5.     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
  6.  
  7.     /** 
  8.   * fixedRate:固定速率執行。每5秒執行一次。 
  9.   */ 
  10.  @Scheduled(fixedRate = 5000) 
  11.  public void runWithFixedRate() { 
  12.      log.info("Fixed Rate Task,Current Thread : {},The time is now : {}", Thread.currentThread().getName(), dateFormat.format(new Date())); 
  13.  } 

運行ScheduleApplication主程序,即可看到控制臺輸出效果:

  1. Fixed Rate Task,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:00 
  2. Fixed Rate Task,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:10 
  3. ... 

3.3.2、固定延遲執行

你可以通過使用fixedDelay參數來設置上一次任務調用完成與下一次任務調用開始之間的延遲時間,示例如下:

  1. @Component 
  2. public class SchedulerTask { 
  3.  
  4.     private static final Logger log = LoggerFactory.getLogger(SchedulerTask.class); 
  5.     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
  6.  
  7.     /** 
  8.      * fixedDelay:固定延遲執行。距離上一次調用成功后2秒后再執行。 
  9.      */ 
  10.     @Scheduled(fixedDelay = 2000) 
  11.     public void runWithFixedDelay() { 
  12.         log.info("Fixed Delay Task,Current Thread : {},The time is now : {}", Thread.currentThread().getName(), dateFormat.format(new Date())); 
  13.     } 

控制臺輸出效果:

  1. Fixed Delay Task,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:00 
  2. Fixed Delay Task,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:02 
  3. ... 

3.3.3、初始延遲任務

你可以通過使用initialDelay參數與fixedRate或者fixedDelay搭配使用來實現初始延遲任務調度。

  1. @Component 
  2. public class SchedulerTask { 
  3.  
  4.     private static final Logger log = LoggerFactory.getLogger(SchedulerTask.class); 
  5.     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
  6.  
  7.  /** 
  8.      * initialDelay:初始延遲。任務的第一次執行將延遲5秒,然后將以5秒的固定間隔執行。 
  9.      */ 
  10.     @Scheduled(initialDelay = 5000, fixedRate = 5000) 
  11.     public void reportCurrentTimeWithInitialDelay() { 
  12.         log.info("Fixed Rate Task with Initial Delay,Current Thread : {},The time is now : {}", Thread.currentThread().getName(), dateFormat.format(new Date())); 
  13.     } 

控制臺輸出效果:

  1. Fixed Rate Task with Initial Delay,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:05 
  2. Fixed Rate Task with Initial Delay,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:10 
  3. ... 

3.3.4、使用 Cron 表達式

Spring Scheduler同樣支持Cron表達式,如果以上簡單參數都不能滿足現有的需求,可以使用 cron 表達式來定時執行任務。

關于cron表達式的具體用法,可以點擊參考這里:https://cron.qqe2.com/

  1. @Component 
  2. public class SchedulerTask { 
  3.  
  4.     private static final Logger log = LoggerFactory.getLogger(SchedulerTask.class); 
  5.     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
  6.  
  7.     /** 
  8.      * cron:使用Cron表達式。每6秒中執行一次 
  9.      */ 
  10.     @Scheduled(cron = "*/6 * * * * ?"
  11.     public void reportCurrentTimeWithCronExpression() { 
  12.         log.info("Cron Expression,Current Thread : {},The time is now : {}", Thread.currentThread().getName(), dateFormat.format(new Date())); 
  13.     } 

控制臺輸出效果:

  1. Cron Expression,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:06 
  2. Cron Expression,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 11:46:12 
  3. ... 

3.4、異步執行定時任務

在介紹異步執行定時任務之前,我們先看一個例子!

在下面的示例中,我們創建了一個每隔2秒執行一次的定時任務,在任務里面大概需要花費 3 秒鐘,猜猜執行結果如何?

  1. @Component 
  2. public class AsyncScheduledTask { 
  3.  
  4.     private static final Logger log = LoggerFactory.getLogger(AsyncScheduledTask.class); 
  5.     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
  6.  
  7.     @Scheduled(fixedRate = 2000) 
  8.     public void runWithFixedDelay() { 
  9.         try { 
  10.             TimeUnit.SECONDS.sleep(3); 
  11.             log.info("Fixed Delay Task, Current Thread : {} : The time is now {}", Thread.currentThread().getName(), dateFormat.format(new Date())); 
  12.         } catch (InterruptedException e) { 
  13.             log.error("錯誤信息",e); 
  14.         } 
  15.     } 

控制臺輸入結果:

  1. Fixed Delay Task, Current Thread : scheduling-1 : The time is now 2020-12-15 17:55:26 
  2. Fixed Delay Task, Current Thread : scheduling-1 : The time is now 2020-12-15 17:55:31 
  3. Fixed Delay Task, Current Thread : scheduling-1 : The time is now 2020-12-15 17:55:36 
  4. Fixed Delay Task, Current Thread : scheduling-1 : The time is now 2020-12-15 17:55:41 
  5. ... 

很清晰的看到,任務調度頻率變成了每隔5秒調度一次!

這是為啥呢?

從Current Thread : scheduling-1輸出結果可以很看到,任務執行都是同一個線程!默認的情況下,@Scheduled任務都在 Spring 創建的大小為 1 的默認線程池中執行!

更直觀的結果是,任務都是串行執行!

下面,我們將其改成異步線程來執行,看看效果如何?

  1. @Component 
  2. @EnableAsync 
  3. public class AsyncScheduledTask { 
  4.  
  5.     private static final Logger log = LoggerFactory.getLogger(AsyncScheduledTask.class); 
  6.     private static final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); 
  7.  
  8.  
  9.     @Async 
  10.     @Scheduled(fixedDelay = 2000) 
  11.     public void runWithFixedDelay() { 
  12.         try { 
  13.             TimeUnit.SECONDS.sleep(3); 
  14.             log.info("Fixed Delay Task, Current Thread : {} : The time is now {}", Thread.currentThread().getName(), dateFormat.format(new Date())); 
  15.         } catch (InterruptedException e) { 
  16.             log.error("錯誤信息",e); 
  17.         } 
  18.     } 

控制臺輸出結果:

  1. Fixed Delay Task, Current Thread : SimpleAsyncTaskExecutor-1 : The time is now 2020-12-15 18:55:26 
  2. Fixed Delay Task, Current Thread : SimpleAsyncTaskExecutor-2 : The time is now 2020-12-15 18:55:28 
  3. Fixed Delay Task, Current Thread : SimpleAsyncTaskExecutor-3 : The time is now 2020-12-15 18:55:30 
  4. ... 

任務的執行頻率不受方法內的時間影響,以并行方式執行!

3.5、自定義任務線程池

雖然默認的情況下,@Scheduled任務都在 Spring 創建的大小為 1 的默認線程池中執行,但是我們也可以自定義線程池,只需要實現SchedulingConfigurer類即可!

自定義線程池示例如下:

  1. @Configuration 
  2. public class SchedulerConfig implements SchedulingConfigurer { 
  3.  
  4.     @Override 
  5.     public void configureTasks(ScheduledTaskRegistrar scheduledTaskRegistrar) { 
  6.         ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler(); 
  7.         //線程池大小為10 
  8.         threadPoolTaskScheduler.setPoolSize(10); 
  9.         //設置線程名稱前綴 
  10.         threadPoolTaskScheduler.setThreadNamePrefix("scheduled-thread-"); 
  11.         //設置線程池關閉的時候等待所有任務都完成再繼續銷毀其他的Bean 
  12.         threadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true); 
  13.         //設置線程池中任務的等待時間,如果超過這個時候還沒有銷毀就強制銷毀,以確保應用最后能夠被關閉,而不是阻塞住 
  14.         threadPoolTaskScheduler.setAwaitTerminationSeconds(60); 
  15.         //這里采用了CallerRunsPolicy策略,當線程池沒有處理能力的時候,該策略會直接在 execute 方法的調用線程中運行被拒絕的任務;如果執行程序已關閉,則會丟棄該任務 
  16.         threadPoolTaskScheduler.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); 
  17.         threadPoolTaskScheduler.initialize(); 
  18.  
  19.         scheduledTaskRegistrar.setTaskScheduler(threadPoolTaskScheduler); 
  20.     } 

我們啟動服務,看看cron任務示例調度效果:

  1. Cron Expression,Current Thread : scheduled-thread-1,The time is now : 2020-12-15 20:46:00 
  2. Cron Expression,Current Thread : scheduled-thread-2,The time is now : 2020-12-15 20:46:06 
  3. Cron Expression,Current Thread : scheduled-thread-3,The time is now : 2020-12-15 20:46:12 
  4. Cron Expression,Current Thread : scheduled-thread-4,The time is now : 2020-12-15 20:46:18 
  5. .... 

當前線程名稱已經被改成自定義scheduled-thread的前綴!

四、小結

本文主要圍繞Spring scheduled應用實踐進行分享,如果是單體應用,使用SpringBoot內置的@scheduled注解可以解決大部分業務需求,上手非常容易!

五、參考

1、SpringBoot @Schedule使用與原理分析

原文鏈接:https://mp.weixin.qq.com/s/7J1tlZab2oE-6cm6GZiU_w

 

責任編輯:武曉燕 來源: Java極客技術
相關推薦

2021-06-18 07:34:12

Kafka中間件微服務

2020-09-14 11:30:26

HTTP3運維互聯網

2022-02-16 19:42:25

Spring配置開發

2011-05-26 09:03:17

JSONjavascript

2010-03-05 17:28:08

2013-06-24 15:32:41

JPush極光推送Android Pus移動開發

2017-08-10 13:13:44

Linux正則表達式

2025-03-13 06:22:59

2022-06-17 08:05:28

Grafana監控儀表盤系統

2021-12-02 06:58:03

AIOps通信服務

2021-12-01 06:50:50

Docker底層原理

2021-10-19 07:27:08

HTTP代理網絡

2023-10-09 16:35:19

方案Spring支付

2020-10-13 18:22:58

DevOps工具開發

2024-12-13 15:29:57

SpringSpringBeanJava

2019-11-22 11:10:26

區塊鏈技術

2021-08-03 17:00:25

Spring Boot代碼Java

2025-03-18 09:20:00

Go語言Golang

2009-11-26 11:19:52

NIS服務器

2020-11-23 16:23:59

CSS設計技術
點贊
收藏

51CTO技術棧公眾號

亚洲福利网站| 国产高清免费av在线| 香蕉视频官网在线观看日本一区二区| 色吊一区二区三区| 亚洲mv在线看| 一级黄色a视频| 一区二区三区午夜视频| 91精品国产综合久久精品 | 人人干人人干人人干| 成人看片爽爽爽| 欧美视频在线视频| 视频在线99re| 午夜精品久久久久久久第一页按摩| 亚洲成人资源| 伊人一区二区三区久久精品| 日本中文字幕二区| 久草免费在线色站| 久久精品男人天堂av| 91久久在线视频| 91玉足脚交嫩脚丫在线播放| 亚洲欧美色图| 中日韩美女免费视频网址在线观看| 激情av中文字幕| 91在线亚洲| 狠狠色狠色综合曰曰| 亚洲国产精品女人| 免费在线性爱视频| 粉嫩一区二区三区性色av| 国产精品久久久久99| 精品少妇久久久久久888优播| 成人3d精品动漫精品一二三| 精品国产乱码久久久久久牛牛 | www.超碰在线观看| 凹凸成人精品亚洲精品密奴| 欧美精品一区二区蜜臀亚洲| 免费网站在线观看黄| 亚洲欧美在线成人| 欧美性猛交xxxx免费看| 美女扒开大腿让男人桶| 免费a在线看| 日本一区二区三区dvd视频在线| 精品国产综合| 日本xxxxwww| 国产黄人亚洲片| 成人网中文字幕| 亚洲系列在线观看| 青青草国产成人99久久| 日本高清不卡的在线| 人人干人人干人人干| 狠狠爱www人成狠狠爱综合网| 久久久精品999| 国产中文字幕久久| 日本欧美国产| 国产一级揄自揄精品视频| www.自拍偷拍| 香蕉久久精品日日躁夜夜躁| 日韩电影中文字幕在线| 特级西西人体wwwww| 人体久久天天| 精品一区二区三区电影| 国产精品成人一区二区三区电影毛片 | 91av在线视频观看| 日韩大片免费在线观看| 亚洲国产婷婷| 欧美自拍视频在线| 成人一二三四区| 美女视频一区在线观看| 国产精品一区二区久久久| 中文字幕人成人乱码亚洲电影| 日韩国产欧美视频| 国产欧美日韩视频| 国产女人18毛片水18精| 国模一区二区三区白浆| 97超级碰碰| 日本激情一区二区| 91农村精品一区二区在线| 久久天天狠狠| 91网页在线观看| 亚洲丝袜美腿综合| 国产精品久久久久久久久电影网| 91破解版在线观看| 欧美日韩亚洲天堂| 日本在线一二三区| 精品入口麻豆88视频| 欧美成人欧美edvon| 亚洲国产精品无码久久久久高潮 | 精品影院一区二区久久久| 91九色单男在线观看| 亚洲国产成人在线观看| 久久亚洲一区二区三区明星换脸| 日韩黄色影视| 中文字幕伦理免费在线视频| 精品久久久久久国产| 一区二区三区国产免费| 久久综合偷偷噜噜噜色| 亚洲精品www久久久| 国内精品卡一卡二卡三| 午夜精品久久| 2019中文字幕在线观看| 一级黄色片免费| www.欧美色图| 一区二区三区四区| 色是在线视频| 制服丝袜亚洲播放| 国产精品无码久久久久久| 婷婷亚洲五月| 日韩av电影手机在线| 国产免费一区二区三区免费视频| av男人天堂一区| 四虎免费在线观看视频| 色网在线免费观看| 日韩一区二区三区在线视频| 日韩一级av毛片| 亚洲黄色大片| 91麻豆蜜桃| 91亚洲精选| 色先锋aa成人| 欧美熟妇精品一区二区蜜桃视频| 成人羞羞网站| 97国产在线视频| 国产日韩一级片| 中文字幕第一页久久| 97超碰青青草| 99国产精品免费网站| 久久精品久久久久久| 99久久精品国产亚洲| 成人午夜激情视频| 一本一道久久a久久精品综合| 24小时免费看片在线观看| 欧美电影在线免费观看| 亚洲码无人客一区二区三区| 日韩一级精品| 国产精品一级久久久| gogogogo高清视频在线| 欧美日韩精品一区二区三区四区 | 国产精品-色哟哟| 久久精品亚洲一区二区三区浴池 | 色哟哟一一国产精品| 日日夜夜免费精品视频| 国产精品日本一区二区| h片在线免费| 日韩欧美一区二区久久婷婷| 午夜国产福利一区二区| 国产主播一区二区| 亚洲在线观看一区| 成人做爰免费视频免费看| 亚洲区一区二区| 中文字幕日韩免费| 国产清纯美女被跳蛋高潮一区二区久久w | 国产狼人综合免费视频| 成年人视频在线免费观看| 色婷婷av一区二区三区大白胸| 国产激情第一页| 99综合视频| 蜜桃麻豆91| 成人软件在线观看| 一区二区三欧美| 在线播放成人av| 最新日韩在线视频| 午夜激情视频网| 欧美激情亚洲| 国产一区二区在线网站| 咪咪网在线视频| 亚洲石原莉奈一区二区在线观看| 无码人妻精品一区二区50| 久久久精品国产免大香伊| 搡女人真爽免费午夜网站| 欧洲杯什么时候开赛| 国产精品欧美一区二区三区奶水 | 午夜精品一区二区三区在线| 午夜影院在线视频| 色婷婷av一区二区三区大白胸| 青青草自拍偷拍| 国产一区二区三区香蕉| 精品国产一区二区三区无码| 奇米影视777在线欧美电影观看 | 欧美图片激情小说| 人人香蕉久久| 国产精品视频色| 青青青国内视频在线观看软件| 日韩av在线最新| 中文字幕日韩经典| 一区二区三区精品久久久| 给我免费观看片在线电影的| 青娱乐精品视频在线| 超碰97在线看| 天天躁日日躁狠狠躁欧美| 国产精品入口福利| 男男gaygays亚洲| 亚洲欧美国产另类| 国产精品嫩草影院桃色| 亚洲国产精品精华液网站| 丰满少妇一区二区| 韩国成人福利片在线播放| 免费特级黄色片| 第一会所sis001亚洲| 成人精品水蜜桃| 欧美极品影院| 九九久久综合网站| 国产女人在线观看| 精品国产一区二区亚洲人成毛片| 久久久久久亚洲av无码专区| 一区二区三区在线视频播放| 好吊视频在线观看| 国产成人av电影在线| 久久国产色av免费观看| 午夜性色一区二区三区免费视频 | 免费在线国产| 欧美大黄免费观看| 在线播放一级片| 欧美午夜激情在线| 久久久一二三区| 国产精品午夜春色av| www.88av| 国产高清久久久久| 不卡的av中文字幕| 免费亚洲婷婷| www.avtt| 欧美日韩网址| 伊人婷婷久久| 精品国产91乱码一区二区三区四区 | 国产精品久久久久久久久电影网| 青青草原综合久久大伊人精品 | 婷婷伊人综合中文字幕| 欧美丰满美乳xxx高潮www| 国产天堂第一区| 欧美性高潮在线| 日本特黄一级片| 一区二区三区在线观看网站| 久久国产精品国语对白| 国产免费久久精品| 3d动漫精品啪啪一区二区下载| 成人在线视频一区二区| 6080国产精品| 狠狠色狠狠色合久久伊人| 国产主播中文字幕| 久久精品伊人| 国产情侣av自拍| 久久99伊人| 男人亚洲天堂网| 免费亚洲婷婷| 91蝌蚪视频在线观看| 麻豆成人在线| 成年人视频在线免费| 国产深夜精品| 男女高潮又爽又黄又无遮挡| 99精品久久| 女人天堂av手机在线| 亚洲国产综合在线看不卡| 性高湖久久久久久久久aaaaa| 欧美成人首页| 日韩视频在线视频| 亚洲国产欧美国产综合一区| 久久综合久久网| 一区福利视频| 大j8黑人w巨大888a片| 99热这里只有精品8| 国产免费黄色av| 久久一二三四| 成人亚洲精品777777大片| 日本91福利区| 久久久久久久久久久久久久久国产| 美女久久久精品| 91 视频免费观看| 国产成人鲁色资源国产91色综| 最新国产精品自拍| 99久久综合狠狠综合久久| av网站免费在线播放| 国产欧美日韩亚州综合| 国产三级aaa| 亚洲一区二区综合| 亚洲成人第一网站| 欧美日韩视频在线第一区 | 青娱乐av在线| 欧美日韩国内自拍| 国产成人精品一区二区色戒| 欧美精品乱人伦久久久久久| www.日本在线观看| 亚洲精品福利在线观看| 国产精品秘入口| x99av成人免费| 国内在线免费视频| 日韩免费在线视频| 国产视频一区二| 精品一区二区视频| 日韩精品影视| www.九色.com| 日本v片在线高清不卡在线观看| 性鲍视频在线观看| 久久嫩草精品久久久精品| 女同久久另类69精品国产| 性欧美疯狂xxxxbbbb| 精品视频一二三区| 日韩一二三四区| 国产在线日本| 欧美精品第一页在线播放| 美女写真久久影院| 国产成人精品自拍| 成人三级视频| 男人添女人下面高潮视频| 欧美aaaaaa午夜精品| 国产一级黄色录像| 国产精品久久久久久久久晋中| 日本熟妇成熟毛茸茸| 欧美日韩国产三级| 日本福利片在线| 九九久久综合网站| 香蕉久久一区| 免费久久久一本精品久久区| 一级欧洲+日本+国产| 免费观看成人网| av中文字幕亚洲| 97成人资源站| 欧美日韩一区国产| 经典三级在线| 97久久精品国产| 亚洲国产aⅴ精品一区二区| 亚洲不卡1区| 亚洲欧洲一区| 国产精品91av| 亚洲欧美在线观看| 中文字幕乱码一区二区 | 亚洲伊人久久综合| 欧洲grand老妇人| 黄色a级片免费| 99精品久久只有精品| 欧美日韩三级在线观看| 欧美人与z0zoxxxx视频| 韩国福利在线| 欧美中文字幕在线| 美国成人xxx| 国产色一区二区三区| 国产a区久久久| 欧美成人一区二区三区高清| 欧美日韩第一区日日骚| 国产精品视频一区二区久久| 国产精品69久久久久| 丝袜连裤袜欧美激情日韩| 日本人体一区二区| 岛国一区二区三区| 精品无码人妻一区二区三区品| 欧美一区二区福利在线| 黄色国产网站在线播放| 国产自产女人91一区在线观看| 成人精品影院| 国产探花在线看| 成人免费在线视频观看| 国产又黄又大又爽| 欧美大肥婆大肥bbbbb| 欧美1区2区3| www.男人天堂网| 成人免费毛片a| 国产精品999久久久| 亚洲国产天堂网精品网站| 午夜伦理在线视频| 国产v亚洲v天堂无码| 亚洲视频观看| 三级男人添奶爽爽爽视频| 欧美色视频日本高清在线观看| 五月天婷婷在线播放| 欧美与黑人午夜性猛交久久久| 尤物tv在线精品| 色悠悠久久综合网| 亚洲色图一区二区| 亚洲成a人片在线| 91国内产香蕉| 国产精品一区高清| 奇米影视四色在线| 亚洲精品久久7777| 日韩有码第一页| 国产97在线亚洲| 欧美成人精品一区二区三区在线看| а 天堂 在线| 天天综合天天综合色| 国产精品二线| 96精品久久久久中文字幕| 99热在线精品观看| 毛片aaaaaa| 日韩欧美一区中文| 樱桃视频成人在线观看| 涩涩日韩在线| 成人性生交大合| 亚洲第一区av| 久久久久久国产免费| 国产一区二区三区四区五区传媒| 成人性生交免费看| 亚洲成在线观看| 国产高清一级毛片在线不卡| 999视频在线观看| 久久久噜噜噜久久狠狠50岁| 美女视频久久久| 精品视频久久久| 国产成年精品| 国产又大又硬又粗| 亚洲免费在线视频一区 二区| 神马午夜电影一区二区三区在线观看| 国产精品久久久久久久久| 午夜精品亚洲| 成人一级片免费看| 精品国产伦一区二区三区观看方式|