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

手把手教你在Windows下設置分布式隊列Celery的心跳輪詢

系統 Windows 分布式
大家好,我是吳老板。用Celery 官方的話來說,Celery 是一個非常優秀的分布式隊列,可應用于分布式共享中間隊列和定時任務等等。

[[385390]]

1 前言

大家好,我是吳老板。用Celery 官方的話來說,Celery 是一個非常優秀的分布式隊列,可應用于分布式共享中間隊列和定時任務等等。

2 版本的差異

Celery 有很多個版本,各版本之間的差異可謂不小,比如最新的 Celery6.0 版本在穩定性遠不如 Celery4.0,所以在使用不同版本的時候,系統給到我們的反饋可能并不能如我們所愿。

3 服務

在 windows 下掛在 Celery 服務有時候會出現不穩定的情況(unix中暫時未發現這種情況),比如在執行定時任務的時候,過了一段時間之后,Celery 出現了假死狀態,以至于不能按照我們指定的時間點去執行任務。

這些任務只是加入到待運行隊列中(堆積在 Redis 中),只能人為重啟 Celery 服務之后才能將堆積的任務釋放出來運行。

這樣一來,第一是定時任務在指定時間點沒有正常運行,其二是在其他時間運行了這些任務,很可能會產生更新數據不及時,時間節點混亂的問題,不僅達不到業務需求,還會反受其害。

4 設置心跳

為了解決 Celery 在 windows 中的這種弊端,可以為 Celery 任務隊列設置一個心跳時間,比如每一分鐘或者每五分鐘向 Redis 數據庫發送一次數據以保證隊列始終是活躍的狀態,這樣只要你的電腦不關機并保持網絡暢通(如果是遠程 Redis),Celery 任務隊列服務就不會出現假死狀態。

5 舉個栗子

我總是很喜歡用示例來說話,前些時間在對某平臺的商家后臺進行數據采集的時候,為了使用時能自動獲取該網站的 cookie ,

用Pyppeteer 寫了一個自動化登陸的腳本,和往常一樣仍在 Celery 隊列中并迅速的啟動服務。

腳本是這樣的(非常接近實際的偽代碼,沒辦法,保命要緊)

  1. # -*- coding: utf-8 -*- 
  2. from db.redisCurd import RedisQueue 
  3. import asyncio 
  4. import random 
  5. import tkinter 
  6. from pyppeteer.launcher import launch 
  7. from platLogin.config import USERNAME, PASSWORD, LOGIN_URL 
  8.  
  9. class Login(): 
  10.     def __init__(self, shopId): 
  11.         self.shopId = shopId 
  12.         self.RedisQueue = RedisQueue("cookie"
  13.  
  14.     def screen_size(self): 
  15.         tk = tkinter.Tk() 
  16.         width = tk.winfo_screenwidth() 
  17.         height = tk.winfo_screenheight() 
  18.         tk.quit() 
  19.         return {'width': width, 'height': height} 
  20.  
  21.     async def login(self, username, password, url): 
  22.         browser = await launch( 
  23.             { 
  24.                 'headless'False
  25.                 'dumpio'True 
  26.             }, 
  27.             args=['--no-sandbox''--disable-infobars''--user-data-dir=./userData'], 
  28.         ) 
  29.         page = await browser.newPage()  # 啟動新的瀏覽器頁面 
  30.  
  31.         try: 
  32.             await page.setViewport(viewport=self.screen_size()) 
  33.             await page.setJavaScriptEnabled(enabled=True)  # 啟用js 
  34.             await page.setUserAgent( 
  35.                 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.36 Edge/16.16299' 
  36.             ) 
  37.             await self.page_evaluate(page) 
  38.             await page.goto(url) 
  39.             await asyncio.sleep(2) 
  40.             # 輸入用戶名,密碼 
  41.             await page.evaluate(f'document.querySelector("#userName").value=""'
  42.             await page.type('#userName', username, {'delay': self.input_time_random() - 50})  # delay是限制輸入的時間 
  43.             await page.evaluate('document.querySelector("#passWord").value=""'
  44.             await page.type('#passWord'password, {'delay': self.input_time_random()}) 
  45.             await page.waitFor(6000) 
  46.  
  47.             loginImgVcode = await page.waitForSelector('#checkCode')   
  48.             await loginImgVcode.screenshot({'path''./loginImg.png'}) 
  49.             await page.waitFor(6000) 
  50.  
  51.             res = use_cjy("./loginImg.png"
  52.             pic_str = res.get("pic_str") if res.get("err_str") == "OK" else "1234" 
  53.  
  54.             await page.waitFor(6000) 
  55.             await page.type('#checkWord', pic_str, {'delay': self.input_time_random() - 50}) 
  56.             await page.waitFor(6000) 
  57.  
  58.             await page.click('#subMit'
  59.             await page.waitFor(6000) 
  60.             await asyncio.sleep(2) 
  61.             await self.get_cookie(page) 
  62.             await page.waitFor(3000) 
  63.             await self.page_close(browser) 
  64.             return {'code': 200, 'msg''登陸成功'
  65.         except
  66.             return {'code': -1, 'msg''出錯'
  67.  
  68.         finally: 
  69.             await page.waitFor(3000) 
  70.             await self.page_close(browser) 
  71.  
  72.     # 獲取登錄后cookie 
  73.     async def get_cookie(self, page): 
  74.         cookies_list = await page.cookies() 
  75.         cookies = '' 
  76.         for cookie in cookies_list: 
  77.             str_cookie = '{0}={1}; ' 
  78.             str_cookie = str_cookie.format(cookie.get('name'), cookie.get('value')) 
  79.             cookies += str_cookie 
  80.         # 將cookie 放入 cookie 池 
  81.         self.RedisQueue.put_hash(self.shopId, cookies) 
  82.         return cookies 
  83.  
  84.     async def page_evaluate(self, page): 
  85.         await page.evaluate('''() =>{ Object.defineProperties(navigator,{ webdriver:{ get: () => undefined } }) }'''
  86.         await page.evaluate('''() =>{ window.navigator.chrome = { runtime: {},  }; }'''
  87.         await page.evaluate( 
  88.             '''() =>{ Object.defineProperty(navigator, 'languages', { get: () => ['en-US', 'en'] }); }'''
  89.         await page.evaluate( 
  90.             '''() =>{ Object.defineProperty(navigator, 'plugins', { get: () => [1, 2, 3, 4, 5,6], }); }'''
  91.         await page.waitFor(3000) 
  92.  
  93.     async def page_close(self, browser): 
  94.         for _page in await browser.pages(): 
  95.             await _page.close() 
  96.         await browser.close() 
  97.  
  98.     def input_time_random(self): 
  99.         return random.randint(100, 151) 
  100.  
  101.     def run(self, username=USERNAME, password=PASSWORD, url=LOGIN_URL): 
  102.         loop = asyncio.get_event_loop() 
  103.         i_future = asyncio.ensure_future(self.login(username, password, url)) 
  104.         loop.run_until_complete(i_future) 
  105.         return i_future.result() 
  106.  
  107.  
  108. if __name__ == '__main__'
  109.     Z = Login(shopId="001"
  110.     Z.run() 

Celery 任務文件是這樣的

  1. # -*- coding: utf-8 -*- 
  2. from __future__ import absolute_import 
  3. import os 
  4. import sys 
  5. import time 
  6. from db.redisCurd import RedisQueue 
  7. from send_msg.weinxin import Send_msg 
  8. base_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 
  9. sys.path.append(base_dir) 
  10. from logger.logger import log_v 
  11. from celery import Task 
  12. from platLogin.login import Login  # 登陸類 
  13. from celery import Celery 
  14.  
  15. randomQueue = RedisQueue("cookie"
  16.  
  17. celery_app = Celery('task'
  18. celery_app.config_from_object('celeryConfig'
  19.  
  20. S = Send_msg() 
  21.  
  22. dl_dict = { 
  23.     'demo': { 
  24.         'cookie'''
  25.         'loginClass''Login'
  26.     } 
  27.  
  28. # todo 這是三種運行的狀態 
  29. class task_status(Task): 
  30.     def on_success(self, retval, task_id, args, kwargs):  
  31.         log_v.info('任務信息 -> id:{} , arg:{} , successful ..... Done'.format(task_id, args)) 
  32.  
  33.     def on_failure(self, exc, task_id, args, kwargs, einfo):   
  34.         log_v.error('task id:{} , arg:{} , failed ! error : {}'.format(task_id, args, exc)) 
  35.  
  36.     def on_retry(self, exc, task_id, args, kwargs, einfo):  
  37.         log_v.warning('task id:{} , arg:{} , retry !  info: {}'.format(task_id, args, exc)) 
  38.  
  39.  
  40. # todo 隨便找個hash key作為輪詢對象, celery在win10系統可能不太穩定,有時候會有連接斷開的情況 
  41. @celery_app.task(base=task_status) 
  42. def get_cookie_status(platName="demo"): 
  43.     try: 
  44.         # log_v.debug(f'[+] 輪詢 {platName} 定時器啟動 ..... Done'
  45.         randomQueue.get_hash(platName).decode() 
  46.         log_v.debug(f'[+] 輪詢 {platName} 成功 ..... Done'
  47.         return "Erp 輪詢成功" 
  48.     except
  49.         return "Erp 輪詢失敗" 
  50.  
  51.  
  52. @celery_app.task(base=task_status) 
  53. def set_plat_cookie(platName="demo", shopId=None): 
  54.     log_v.debug(f"[+] {platName} 正在登陸"
  55.     core = eval(dl_dict[platName]['loginClass'])(shopId=shopId) 
  56.     result = core.run() 
  57.     return result 

Celery 配置文件是這樣的

  1. from __future__ import absolute_import 
  2. import datetime 
  3. from kombu import Exchange, Queue 
  4. from celery.schedules import crontab 
  5. from urllib import parse 
  6.  
  7. BROKER_URL = f'redis://root:{parse.quote("你的不規則密碼")}@主機:6379/15' 
  8.  
  9. # 導入任務,如tasks.py 
  10. CELERY_IMPORTS = ('monitor.tasks',) 
  11.  
  12. # 列化任務載荷的默認的序列化方式 
  13. CELERY_TASK_SERIALIZER = 'json' 
  14.  
  15. # 結果序列化方式 
  16. CELERY_RESULT_SERIALIZER = 'json' 
  17. CELERY_ACCEPT_CONTENT = ['json'
  18.  
  19. CELERY_TIMEZONE = 'Asia/Shanghai'  # 指定時區,不指定默認為 'UTC' 
  20. # CELERY_TIMEZONE='UTC' 
  21.  
  22. CELERYBEAT_SCHEDULE = { 
  23.     'add-every-60-seconds': { 
  24.         'task''tasks.get_cookie_status'
  25.         'schedule': datetime.timedelta(minutes=1),  # 每 1 分鐘執行一次 
  26.         'args': ()  # 任務函數參數 
  27.     }, 

啟動服務

  1. celery -A tasks beat -l INFO 
  2. celery -A tasks worker -l INFO -c 2 

以 2 個線程啟動消費者隊列服務并啟用定時任務,當發現當前平臺的 cookie 不可用時,我會向 Celery 發送一個信號(就是調用了前面的set_plat_cookie 這個方法),消費者得到這個任務這個就會執行自動化腳本以獲取 cookie 并儲存在 Redis 中,使用時在從 Redis 中獲取就能正常請求到該平臺的數據。

在空閑時間,Celery中的 get_cookie_status 方法會每隔一分鐘向 Redis 請求數據,這就是我們設置的 1分鐘心跳。

這樣不管我們的 Celery 是否是后臺啟動,都不會出現假死、卡死的狀態,則萬事大吉矣!!

6 總結

 

本文為了解決 Celery 在 windows 中的這種弊端,為 Celery 任務隊列設置一個心跳時間,比如每一分鐘或者每五分鐘向 Redis 數據庫發送一次數據以保證隊列始終是活躍的狀態,這樣只要你的電腦不關機并保持網絡暢通(如果是遠程 Redis),Celery 任務隊列服務都不會出現假死、卡死的狀態。

 

責任編輯:武曉燕 來源: Python爬蟲與數據挖掘
相關推薦

2018-05-22 15:30:30

Python網絡爬蟲分布式爬蟲

2020-06-01 16:25:43

WindowsLinux命令

2025-11-11 07:51:00

2018-05-09 09:44:51

Java分布式系統

2021-10-30 19:30:23

分布式Celery隊列

2011-05-03 15:59:00

黑盒打印機

2025-05-07 00:31:30

2011-01-10 14:41:26

2021-07-14 09:00:00

JavaFX開發應用

2018-07-02 08:25:14

2023-05-26 00:34:21

WindowsHadoopLinux

2011-08-29 18:03:47

設置路由器路由器

2021-09-26 16:08:23

CC++clang_forma

2011-02-22 13:46:27

微軟SQL.NET

2021-02-26 11:54:38

MyBatis 插件接口

2021-12-28 08:38:26

Linux 中斷喚醒系統Linux 系統

2023-04-26 12:46:43

DockerSpringKubernetes

2022-12-07 08:42:35

2022-03-14 14:47:21

HarmonyOS操作系統鴻蒙

2022-07-27 08:16:22

搜索引擎Lucene
點贊
收藏

51CTO技術棧公眾號

日本阿v视频在线观看| 欧美亚洲激情在线| 在线视频一二区| 欧美成年黄网站色视频| 国产一区二区中文字幕| 欧美成人午夜激情在线| 中国特级黄色片| 成人三级高清视频在线看| 波多野结衣中文字幕一区| 97超碰蝌蚪网人人做人人爽| av中文字幕免费观看| 欧美成人高清视频在线观看| 亚洲精品欧美在线| 亚洲综合精品一区二区| 日韩精品一区二区三| 精品美女在线视频| 欧美一级专区免费大片| 人妻久久久一区二区三区| 国内在线精品| 国产高清不卡二三区| 欧美一级在线亚洲天堂| 婷婷丁香综合网| 欧美片网站免费| 精品久久久久久久中文字幕 | 一区二区三区无码高清视频| 中文字幕第三区| av丝袜在线| 国产精品网站在线| 国产区二精品视| 一区二区的视频| 午夜在线a亚洲v天堂网2018| 久久久成人av| 国产美女免费无遮挡| 国产亚洲精彩久久| 黑人巨大精品欧美一区二区三区| 在线观看欧美亚洲| 久久视频www| 国产成a人亚洲精品| 国产精品人人做人人爽| 国产成人在线免费观看视频| 欧美高清视频手机在在线| 日韩av资源在线播放| 人妻av一区二区三区| 99久久久成人国产精品| 91黄色在线观看| 麻豆tv在线播放| 国产精品刘玥久久一区| 久久久久9999亚洲精品| 国产一区在线观| 精品国产九九九| 免费成人在线观看视频| 国产suv精品一区二区三区88区| 国产精品白嫩白嫩大学美女| 日韩欧美高清在线播放| 亚洲男人的天堂在线| 国产一线在线观看| 视频二区欧美| 欧美一区二区三区视频在线| 中文字幕网av| 日韩av免费| 在线免费不卡视频| 国产福利视频在线播放| 僵尸再翻生在线观看| 亚洲综合在线观看视频| 亚洲在线不卡| 日本在线视频站| 国产一区二区在线| 成人激情午夜影院| 国产美女直播视频一区| 亚洲天堂视频在线播放| 久久久久欧美精品| 日本欧美中文字幕| 久久天天狠狠| 99热这里精品| 黄色日韩网站视频| 国产又爽又黄的激情精品视频| 欧美一级淫片免费视频黄| 久久99伊人| 日本一区二区三区四区视频| 国产性生活视频| 日本欧美大码aⅴ在线播放| 国产精品精品视频| 91一区二区视频| 国产九九视频一区二区三区| 97神马电影| 女人18毛片一区二区三区| 成人黄色网址在线观看| 精品日本一区二区三区在线观看| 99久久婷婷国产一区二区三区| 国产精品一区2区| 国产精品视频免费一区| 欧洲免费在线视频| 欧美国产精品v| 亚洲一区二区高清视频| 成人免费在线视频网| 国产精品成人一区二区三区夜夜夜| 伊人久久av导航| 欧洲一区二区三区| 第一福利永久视频精品 | 美女毛片在线看| 中文字幕成人网| 久久久久福利视频| 色综合桃花网| 欧美日韩在线播| 91人妻一区二区三区| 日本一区福利在线| 在线观看免费高清视频97| 日本成人免费视频| 亚洲国产老妈| 91高清免费在线观看| 在线免费观看日韩视频| 成人免费观看男女羞羞视频| 久久综合毛片| 国产欧美久久久久久久久| 五月婷婷综合网| 91欧美视频在线| 国产精品17p| 中文字幕精品久久久久| 久久久美女视频| 日本不卡的三区四区五区| 91久久精品国产91久久性色tv | 日韩成人激情在线| 久久久精品成人| 亚洲深夜激情| 91久久国产综合久久蜜月精品| 免费在线视频一级不卡| 亚洲综合丁香婷婷六月香| 手机看片福利日韩| 国内精品国产成人国产三级粉色| 中文字幕精品一区久久久久| 日本三级午夜理伦三级三| 精品在线播放午夜| 国产成人精品免费视频大全最热| yiren22亚洲综合伊人22| 亚洲国产你懂的| 亚洲制服中文字幕| 伊人久久大香线蕉综合网蜜芽| 不卡av电影在线观看| 老熟妇一区二区三区啪啪| 北岛玲一区二区三区四区| 男人的天堂成人| 中韩乱幕日产无线码一区| 日韩高清欧美高清| 久久久久久蜜桃| 国产一区二区日韩精品| 亚洲午夜在线观看| 88xx成人网| 国产亚洲精品日韩| 日韩在线视频免费播放| 成人黄色大片在线观看| 一级一片免费播放| 99精品在免费线偷拍| 亚洲精选中文字幕| 国产99久久久| 91视频观看视频| www.18av.com| 视频精品国内| 精品少妇v888av| aaa国产视频| 亚洲人午夜精品天堂一二香蕉| 亚洲一级免费在线观看| 精品72久久久久中文字幕| 青草成人免费视频| 成人av一区二区三区在线观看| 亚洲伦在线观看| 手机看片国产精品| 午夜视频一区| 国产精品久久7| 国产伦理精品| 日韩激情av在线播放| 女人十八岁毛片| 久久久久久久久久久久久久久99 | 一区二区三区资源| 男人女人拔萝卜视频| 欧美精品一级| 国产欧美日韩亚洲| 91福利区在线观看| 亚洲国产天堂久久综合| 国产精品久久久久久久妇| 久久精品视频免费观看| 成人在线看视频| 久久综合色占| 国产精品亚洲激情| 在线中文免费视频| 欧美一级片免费看| 国产一级久久久| www激情久久| 九热视频在线观看| 综合天堂av久久久久久久| 国产高清自拍99| 性欧美hd调教| 精品国产一区久久久| 99久久夜色精品国产亚洲| 亚洲成av人片一区二区三区| 日本一卡二卡在线| 蜜臀av一区二区三区| 青青青在线观看视频| 香蕉久久精品| 成人激情视频在线观看| 金瓶狂野欧美性猛交xxxx | 可以看的av网址| 性欧美videos另类喷潮| 一区二区精品国产| 麻豆国产欧美一区二区三区r| 日本一区二区在线播放| 国产视频中文字幕在线观看| 日韩免费电影一区| 中文字幕日日夜夜| 亚洲午夜激情av| 公肉吊粗大爽色翁浪妇视频| 国产成人aaa| 久久久国产欧美| 在线精品观看| 国产精品av免费| 亚洲a级精品| 亚洲va久久久噜噜噜久久天堂| a国产在线视频| 操日韩av在线电影| 天堂网在线播放| 欧美日本乱大交xxxxx| 亚洲精品在线观看av| 久久这里只有精品视频网| 两性午夜免费视频| 日韩成人一区二区三区在线观看| av在线免费观看国产| 久久亚洲国产| 欧洲精品久久| 免费成人三级| 92看片淫黄大片欧美看国产片 | 999国产精品永久免费视频app| 国产原创精品| 日韩激情欧美| 国产色视频一区| 嫩草伊人久久精品少妇av杨幂| 久久久欧美精品| 国产精品久久久久久福利| 亚洲丁香婷深爱综合| 国产日韩在线观看一区| 精品人伦一区二区三区蜜桃网站 | 欧美高清在线视频| 女同毛片一区二区三区| 国产凹凸在线观看一区二区| 小明看看成人免费视频| 日韩av一区二区三区| 免费人成自慰网站| 欧美区日韩区| 六月婷婷激情网| 91亚洲一区| 亚洲欧洲国产日韩精品| 激情综合网站| 日韩亚洲视频| 亚洲成aⅴ人片久久青草影院| 久久国产精品免费一区| 欧美交a欧美精品喷水| 国产精品视频入口| 九色丨蝌蚪丨成人| 国产精品一区二区三区精品| 91在线一区| 成人做爰66片免费看网站| 亚洲日本视频在线| αv一区二区三区| 粉嫩精品导航导航| 日本不卡在线观看| 欧美激情黄色片| 国产精品国产三级国产专区51| 欧美日韩国产成人精品| 国产精品宾馆在线精品酒店| 久久久久久久波多野高潮日日| 黄大色黄女片18第一次| 国产一区二区电影| 欧美肉大捧一进一出免费视频| 91天堂素人约啪| 精品一区二区在线观看视频| 亚洲男人电影天堂| 亚洲精品77777| 欧美亚洲国产一卡| 国产成人精品a视频| 亚洲国产精品va在线| 福利片在线看| 欧美日韩国产成人在线| 色老头在线一区二区三区| 国产精品久久久久影院日本| 日韩中文字幕在线一区| 欧美成ee人免费视频| 9999国产精品| 欧美成人高潮一二区在线看| 日韩电影在线一区| 国产调教打屁股xxxx网站| 久久亚区不卡日本| 福利所第一导航| 色综合久久久久网| 国内精品国产成人国产三级| 亚洲精品自拍视频| av在线网址观看| 国产精品6699| 日韩一级淫片| 亚洲欧美日产图| 亚洲自啪免费| 中国男女全黄大片| 国产亚洲自拍一区| 国产一级片免费| 7878成人国产在线观看| 免费在线观看污视频| 欧美美女15p| 外国成人毛片| 日本亚洲导航| 在线免费高清一区二区三区| 午夜免费看毛片| 国产校园另类小说区| 国产一卡二卡在线| 91精品国产全国免费观看| 国产在线网站| 欧美一级免费看| 国产精品视频3p| 粉嫩av一区二区三区天美传媒| 日本欧美韩国一区三区| 蜜桃精品成人影片| 午夜精品久久久久久不卡8050| 99久久精品国产一区二区成人| 永久免费毛片在线播放不卡| 亚洲人体影院| 精品国产综合久久| 在线不卡亚洲| 佐佐木明希电影| 亚洲综合色噜噜狠狠| 国产精品特级毛片一区二区三区| 尤物99国产成人精品视频| 亚洲1234区| 日产精品久久久一区二区| 香蕉久久夜色精品| 美国黄色a级片| 精品久久久久久亚洲精品| 人妻一区二区三区| 欧美激情精品久久久久久蜜臀 | 日本一区二区三区四区在线观看| 99精品久久久| 国产又粗又猛又色| 亚洲成人av中文| 天天操天天干天天| 91国偷自产一区二区三区的观看方式| 综合伊人久久| 被灌满精子的波多野结衣| 国产成人在线观看| 久久一二三四区| 精品久久久久久久久久久久久久久 | 羞羞色午夜精品一区二区三区| 91免费在线视频| 日韩中字在线| 亚洲36d大奶网| 国产精品久久久久久亚洲毛片| 亚洲欧美日韩一区二区三区四区| 亚洲人a成www在线影院| 亚洲第一会所| 亚洲黄色一区二区三区| 美女视频黄a大片欧美| www.黄色com| 欧美一级在线观看| 久久香蕉一区| 美女精品国产| 日av在线不卡| 欧美偷拍第一页| 亚洲第一天堂av| 偷拍中文亚洲欧美动漫| 亚洲一卡二卡| 国产高清无密码一区二区三区| 国产在线观看你懂的| 日韩精品中文在线观看| 国产精成人品2018| 国产又粗又爽又黄的视频| 丁香激情综合五月| 久久青青草原亚洲av无码麻豆| 国产一区二区三区欧美| 中文字幕日本一区| av无码久久久久久不卡网站| 91色|porny| 中文字幕有码视频| 欧美成人网在线| 蜜桃精品噜噜噜成人av| 青青草原国产在线视频| 亚洲午夜激情网站| 触手亚洲一区二区三区| 亚洲影院污污.| 亚久久调教视频| 午夜免费激情视频| 日韩麻豆第一页| 成人豆花视频| 成熟了的熟妇毛茸茸| 国产精品免费观看视频| 欧美 日韩 国产 成人 在线 91 | 国产精品一级二级三级| 中文字幕第28页| 深夜福利亚洲导航| 都市激情亚洲| 在线免费黄色网| 狠狠色狠狠色综合日日小说| 国产黄色小视频在线| 日本精品一区二区三区不卡无字幕| 国产一区二区三区高清播放| www.国产毛片| 午夜精品99久久免费|