成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > 詳解Gotorch多機(jī)定時(shí)任務(wù)管理系統(tǒng)

詳解Gotorch多機(jī)定時(shí)任務(wù)管理系統(tǒng)

熱門(mén)標(biāo)簽:開(kāi)通400電話申請(qǐng)流程 百度地圖標(biāo)注位置網(wǎng)站 400手機(jī)電話免費(fèi)辦理 如何利用高德地圖標(biāo)注家 上海企業(yè)外呼系統(tǒng)排名 智能語(yǔ)音電銷的機(jī)器人 電腦外呼系統(tǒng)輻射大嗎 揚(yáng)州電銷外呼系統(tǒng)軟件 武漢百應(yīng)人工智能電銷機(jī)器人

前言

先介紹下問(wèn)題:

組內(nèi)有十來(lái)臺(tái)機(jī)器,上面用 cron 分別定時(shí)執(zhí)行著一些腳本和 shell 命令,一開(kāi)始任務(wù)少的時(shí)候,大家都記得哪臺(tái)機(jī)器執(zhí)行著什么,隨著時(shí)間推移,人員幾經(jīng)變動(dòng),任務(wù)也越來(lái)越多,再也沒(méi)人能記得清哪些任務(wù)在哪些機(jī)器上執(zhí)行了,排查和解決后臺(tái)腳本的問(wèn)題也越來(lái)越麻煩。

解決這個(gè)問(wèn)題也不是沒(méi)有辦法:

  • 維護(hù)一個(gè) wiki,一旦任務(wù)有變動(dòng)就更新 wiki,但一旦忘記更新 wiki,任務(wù)就會(huì)變成孤兒,什么時(shí)候出了問(wèn)題更不好查。
  • 布置一臺(tái)機(jī)器,定時(shí)拉取各機(jī)器的 cron 配置文件,進(jìn)行對(duì)比統(tǒng)計(jì),再將結(jié)果匯總展示,但命令的寫(xiě)法各式各樣,對(duì)比命令也是個(gè)沒(méi)頭腦的事。
  • 使用開(kāi)源分布式任務(wù)調(diào)度任務(wù),比較重型,而且一般要布置數(shù)據(jù)庫(kù)、后臺(tái),比較麻煩。

除此之外,任務(wù)的修改也非常不方便,如果想給在 crontab 里修改某一項(xiàng)任務(wù),還需要找運(yùn)維操作。雖然解決這個(gè)問(wèn)題也有辦法,使用 crontab cronfile.txt 直接讓 crontab 加載文件,但引入新的問(wèn)題:任務(wù)文件加載的實(shí)時(shí)性不好控制。

為了解決以上問(wèn)題,我結(jié)合 cron 和任務(wù)管理,每天下班后花一點(diǎn)時(shí)間,實(shí)現(xiàn)一個(gè)小功能,最后完成了 gotorch 的可用版。看著 GitHub 的 commit 統(tǒng)計(jì),還挺有成就感的~

這里放上 GitHub 鏈接地址: GitHub-zhenbianshu-gotorch ,歡迎 star/fork/issue。

介紹一下特色功能:

  • cron+,秒級(jí)定時(shí),使任務(wù)執(zhí)行更加靈活;
  • 任務(wù)列表文件路徑可以自定義,建議使用版本控制系統(tǒng);
  • 內(nèi)置日志和監(jiān)控系統(tǒng),方便各位同學(xué)任意擴(kuò)展;
  • 平滑重加載配置文件,一旦配置文件有變動(dòng),在不影響正在執(zhí)行的任務(wù)的前提下,平滑加載;
  • IP、最大執(zhí)行數(shù)、任務(wù)類型配置,支持更靈活的任務(wù)配置;

下面說(shuō)一下功能實(shí)現(xiàn)的技術(shù)要點(diǎn):

文章歡迎轉(zhuǎn)載,但請(qǐng)帶上本文源地址:http://www.cnblogs.com/zhenbianshu/p/7905678.html,謝謝。

cron+

在實(shí)現(xiàn)類似 cron 的功能之前,我簡(jiǎn)單地看了一下 cron 的源碼,源碼在 https://busybox.net/downloads/ 可以下載,解壓后文件在miscutils > crond.c。

cron 的實(shí)現(xiàn)設(shè)計(jì)得很巧妙的,大概如下:

數(shù)據(jù)結(jié)構(gòu):

1.cron 擁有一個(gè)全局結(jié)構(gòu)體 global ,保存著各個(gè)用戶的任務(wù)列表;

2.每一個(gè)任務(wù)列表是一個(gè)結(jié)構(gòu)體 CronFile, 保存著用戶名和任務(wù)鏈表等;

3.每一個(gè)任務(wù) CronLine 有 shell 命令、執(zhí)行 pid、執(zhí)行時(shí)間數(shù)組 cl_Time 等屬性;

4.執(zhí)行時(shí)間數(shù)組的最大長(zhǎng)度根據(jù) “分時(shí)日月周” 的最大值確定,將可執(zhí)行時(shí)間點(diǎn)的值置為 true,例如 在每天的 3 點(diǎn)執(zhí)行則 cl_Hrs[3]=true;

執(zhí)行方式:

1.cron是一個(gè) while(true) 式的長(zhǎng)循環(huán),每次 sleep 到下一分鐘的開(kāi)始。

2.cron 在每分鐘的開(kāi)始會(huì)依次遍歷檢查用戶 cron 配置文件,將更新后的配置文件解析成任務(wù)存入全局結(jié)構(gòu)體,同時(shí)它也定期檢查配置文件是否被修改。

3.然后 cron 會(huì)將當(dāng)前時(shí)間解析為 第 n 分/時(shí)/日/月/周,并判斷 cal_Time[n] 全為 true 則執(zhí)行任務(wù)。

4.執(zhí)行任務(wù)時(shí)將 pid 寫(xiě)入防止重復(fù)執(zhí)行;

5.后續(xù) cron 還會(huì)進(jìn)行一些異常檢測(cè)和錯(cuò)誤處理操作。

明白了 cron 的執(zhí)行方式后,感覺(jué)每個(gè)時(shí)間單位都遍歷任務(wù)進(jìn)行判斷于性能有損耗,而且我實(shí)現(xiàn)的是秒級(jí)執(zhí)行,遍歷判斷的性能損耗更大,于是考慮優(yōu)化成:

給每個(gè)任務(wù)設(shè)置一個(gè) next_time 的時(shí)間戳,在一次執(zhí)行后更新此時(shí)間戳,每個(gè)時(shí)間單位只需要判斷 task.next_time == current_time。

后來(lái)由于 “秒分時(shí)日月周” 的日期格式進(jìn)位不規(guī)則,代碼太復(fù)雜,實(shí)現(xiàn)出來(lái)效率也不比原來(lái)好,終于放棄了這種想法。。采用了跟 cron 一樣的執(zhí)行思路。

此外,我添加了三種限制任務(wù)執(zhí)行的方式:

  • IP:在服務(wù)啟動(dòng)時(shí)獲取本地內(nèi)網(wǎng) IP,執(zhí)行前校驗(yàn)是否在任務(wù)的 IP 列表中;
  • 任務(wù)類型:任務(wù)為 daemon 的,當(dāng)任務(wù)沒(méi)有正在執(zhí)行時(shí)則中斷判斷直接啟動(dòng);
  • 最大執(zhí)行數(shù):在每個(gè)任務(wù)上設(shè)置一個(gè)執(zhí)行中任務(wù)的 pid 構(gòu)成的 slice,每次執(zhí)行前校驗(yàn)當(dāng)前執(zhí)行數(shù)。

而任務(wù)啟動(dòng)方式,則直接使用 goroutine 配合 exec 包,每次執(zhí)行任務(wù)都啟動(dòng)一個(gè)新的 goroutine,保存 pid,同時(shí)進(jìn)行錯(cuò)誤處理。由于服務(wù)可能會(huì)在一秒內(nèi)多次掃描任務(wù),我給每個(gè)任務(wù)添加了一個(gè)進(jìn)程上次執(zhí)行時(shí)間戳的屬性,待下次執(zhí)行時(shí)對(duì)比,防止任務(wù)在一秒內(nèi)多次掃描執(zhí)行了多次。

守護(hù)進(jìn)程

本服務(wù)是做成了一個(gè)類似 nginx 的服務(wù),我將進(jìn)程的 pid 保存在一個(gè)臨時(shí)文件中,對(duì)進(jìn)程操作時(shí)通過(guò)命令行給進(jìn)程發(fā)送信號(hào),只需要注意下異常情況下及時(shí)清理 pid 文件就好了。

這里說(shuō)一下 Go 守護(hù)進(jìn)程的創(chuàng)建方式:

由于 Go 程序在啟動(dòng)時(shí) runtime 可能會(huì)創(chuàng)建多個(gè)線程(用于內(nèi)存管理,垃圾回收,goroutine管理等),而 fork 與多線程環(huán)境并不能和諧共存,所以 Go 中沒(méi)有 Unix 系統(tǒng)中的 fork 方法;于是啟動(dòng)守護(hù)進(jìn)程我采用 exec 之后立即執(zhí)行,即 fork and exec 的方式,而 Go 的 exec 包則支持這種方式。

在進(jìn)程最開(kāi)始時(shí)獲取并判斷進(jìn)程 ppid 是否為1 (守護(hù)進(jìn)程的父進(jìn)程退出,進(jìn)程會(huì)被“過(guò)繼”給 init 進(jìn)程,其進(jìn)程號(hào)為1),在父進(jìn)程的進(jìn)程號(hào)不為1時(shí),使用原進(jìn)程的所有參數(shù) fork and exec 一個(gè)跟自己相同的進(jìn)程,關(guān)閉新進(jìn)程與終端的聯(lián)系,并退出原進(jìn)程。

filePath, _ := filepath.Abs(os.Args[0]) // 獲取服務(wù)的命令路徑
cmd := exec.Command(filePath, os.Args[1:]...) // 使用自身的命令路徑、參數(shù)創(chuàng)建一個(gè)新的命令
cmd.Stdin = nil
cmd.Stdout = nil 
cmd.Stderr = nil // 關(guān)閉進(jìn)程標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、錯(cuò)誤輸出
cmd.Start() // 新進(jìn)程執(zhí)行
return // 父進(jìn)程退出

信號(hào)處理

將進(jìn)程制作為守護(hù)進(jìn)程之后,進(jìn)程與外界的通信就只好依靠信號(hào)了,Go 的 signal 包搭配 goroutine 可以方便地監(jiān)聽(tīng)、處理信號(hào)。同時(shí)我們使用 syscall 包內(nèi)的 Kill 方法來(lái)向進(jìn)程發(fā)送信號(hào)。

我們監(jiān)聽(tīng) Kill 默認(rèn)發(fā)送的信號(hào)SIGTERM,用來(lái)處理服務(wù)退出前的清理工作,另外我還使用了用戶自定義信號(hào)SIGUSR2 用來(lái)作為終端通知服務(wù)重啟的消息。

一個(gè)信號(hào)從監(jiān)聽(tīng)到捕捉再到處理的完整流程如下:

1.首先我們使用創(chuàng)建一個(gè)類型為 os.Sygnal 的無(wú)緩沖channel,來(lái)存放信號(hào)。

2.使用 signal.Notify() 函數(shù)注冊(cè)要監(jiān)聽(tīng)的信號(hào),傳入剛創(chuàng)建的 channel,在捕捉到信號(hào)時(shí)接收信號(hào)。

3.創(chuàng)建一個(gè) goroutine,在 channel 中沒(méi)有信號(hào)時(shí) signal := -channel 會(huì)阻塞。

4.Go 程序一旦捕捉到正在監(jiān)聽(tīng)的信號(hào),就會(huì)把信號(hào)通過(guò) channel 傳遞過(guò)來(lái),此時(shí) goroutine 便不會(huì)繼續(xù)阻塞。

5.通過(guò)后面的代碼處理對(duì)應(yīng)的信號(hào)。

對(duì)應(yīng)的代碼如下:

c := make(chan os.Signal)
signal.Notify(c, syscall.SIGTERM, syscall.SIGUSR2) 

// 開(kāi)啟一個(gè)goroutine異步處理信號(hào)
go func() {
    s := -c
    if s == syscall.SIGTERM {
        task.End()
        logger.Debug("bootstrap", "action: end", "pid "+strconv.Itoa(os.Getpid()), "signal "+fmt.Sprintf("%d", s))
        os.Exit(0)
    } else if s == syscall.SIGUSR2 {
        task.End()
        bootStrap(true)
    }
}()

小結(jié)

gotorch 的開(kāi)發(fā)共花了三個(gè)月,每天半小時(shí)左右,1~3 個(gè) commits,經(jīng)歷了三次大的重構(gòu),特別是在代碼格式上改得比較頻繁。 不過(guò)使用 Go 開(kāi)發(fā)確實(shí)是挺舒心的,Go 的代碼很簡(jiǎn)潔, gofmt 用著非常方便。另外 Go 的學(xué)習(xí)曲線也挺平滑,熟悉各個(gè)常用標(biāo)準(zhǔn)包后就能進(jìn)行簡(jiǎn)單的開(kāi)發(fā)了。 簡(jiǎn)單易學(xué)、高效快捷,難怪 Go 火熱得這么快了。

以上就是詳解Gotorch多機(jī)定時(shí)任務(wù)管理系統(tǒng)的詳細(xì)內(nèi)容,更多關(guān)于Gotorch多機(jī)定時(shí)任務(wù)管理系統(tǒng)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • go 實(shí)現(xiàn)簡(jiǎn)易端口掃描的示例
  • go xorm框架的使用
  • 解析Go的Waitgroup和鎖的問(wèn)題
  • Go語(yǔ)言快速入門(mén)圖文教程
  • go語(yǔ)言基礎(chǔ) seek光標(biāo)位置os包的使用
  • Go語(yǔ)言獲取文件的名稱、前綴、后綴
  • Go語(yǔ)言 如何實(shí)現(xiàn)RSA加密解密
  • Go 自定義package包設(shè)置與導(dǎo)入操作

標(biāo)簽:武漢 江西 延邊 新余 張掖 宜賓 嘉峪關(guān) 黑龍江

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《詳解Gotorch多機(jī)定時(shí)任務(wù)管理系統(tǒng)》,本文關(guān)鍵詞  詳解,Gotorch,多機(jī),定時(shí),任務(wù),;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《詳解Gotorch多機(jī)定時(shí)任務(wù)管理系統(tǒng)》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于詳解Gotorch多機(jī)定時(shí)任務(wù)管理系統(tǒng)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    小视频免费在线观看| 国产精品第100页| 霍思燕三级露全乳照| 国产综合久久久久| 亚洲性视频h| 久久精品一区二区国产| jvid福利在线一区二区| 久久视频一区二区| 色婷婷一区二区三区四区| 国产精品视频h| 爱情电影社保片一区| 亚洲国产一区二区在线| 精品中文字幕一区二区三区四区| 男女爱爱视频免费| 极品尤物av久久免费看| 三上悠亚国产精品一区二区三区| 亚洲人成人无码网www国产| 亚洲综合自拍一区| 色哟哟无码精品一区二区三区| 欧美日韩午夜精品| 99精品视频一区二区| 日本视频中文字幕一区二区三区| 欧美日韩精品一区二区三区视频| 精品国产一区二区三| 午夜亚洲性色福利视频| 草久久免费视频| 那种视频在线观看| 中文在线a√在线8| 色综合久久久久久久久久久| h片在线观看视频免费免费| 国产性xxxx18免费观看视频| 尤物在线精品视频| 亚洲综合伊人久久| 免费看黄色的视频| 国产1区2区| a级大片在线观看| av片在线免费看| 九九精品久久久| 欧美性大战久久| 日本欧美亚洲| 国产乱人伦精品一区| 亚洲国产经典视频| 日本亚洲欧洲色| 久久r这里只有精品| 成人久久网站| 国产不卡一区| 国产第一页第二页| 欧美在线观看黄| 青青九九免费视频在线| 国产在线美女| 亚洲丝袜自拍清纯另类| 涩涩网站在线看| 成人性生交大片免费看午夜| 欧美激情18p| 日韩av懂色| 亚洲av永久无码精品| 91一区二区三区在线| 色猫av在线| 91国偷自产中文字幕久久| 精品无码av无码免费专区| 欧美成人嫩草网站| 91视频亚洲| 国内一区二区三区| 国产午夜在线播放| 日本色护士高潮视频在线观看| 国产xxxxx视频| 视频一区二区欧美| 口述被爽到呻吟高潮自述| 国产精品一区二区免费在线观看| 成人黄色生活片| 亚洲精品国产熟女久久久| 中文字幕 在线观看| 亚洲奶水xxxx哺乳期| 人人澡人人澡人人看欧美| 爱情岛论坛vip永久入口| 中文字幕视频观看| 91精产国品一二三| 可以免费看av的网址| 国产精品毛片一区二区在线看舒淇| 亚洲国产美女搞黄色| 真实国产乱子伦对白视频| 欧美色图片你懂的| 国产 porn| 亚洲成a人片在线不卡一二三区| 日本一级二级视频| 亚洲综合色一区| 五月天婷婷在线视频| 免费一级黄色大片| 久久另类ts人妖一区二区| 在线观看你懂| www.狠狠爱| 小早川怜子影音先锋在线观看| 欧美丰满高潮xxxx喷水动漫| 中日韩黄色大片| 黄频在线免费观看| 亚洲综合在线第一页| 亚洲日本国产| 精品国产乱码| 亚洲国产精品99久久久久久久久| 成人听书哪个软件好| 日本色综合中文字幕| 国产91免费看片| 538在线视频| 亚洲美女精品成人在线视频| 欧美日韩中文字幕一区| 综合久久99| 亚洲精品一二三区区别| 无码人妻精品一区二区三区9厂| 久久综合亚洲社区| 91九色国产ts另类人妖| 91精品国产91久久| 精品国产一区二区三| 全球成人中文在线| 久久久精品黄色| 国产一区二区黑人欧美xxxx| 欧美国产视频一区二区| 开心婷婷激情五月| 另类图片亚洲色图| 国产精品15p| 色男人天堂综合再现| 日韩电影在线观看永久视频免费网站| 波多野结衣不卡视频| 国产亚洲一区二区在线观看| 久久大胆人体视频| 日韩欧美久久久| 欧美日韩免费观看视频| 欧美午夜影院| 国产91精品久久久久| 精品中文字幕不卡在线视频| 97热在线精品视频在线观看| 美女高潮视频在线看| 欧美激情久久久久久久久久久| 日韩精品电影网| 欧美极品少妇videossex| 日本中文字幕一区二区有码在线| 一区二区三区欧美精品| 国产又爽又黄视频| 7m精品国产导航在线| 少妇人妻偷人精品一区二区| 久久久精品99| 亚洲日本久久| av免费观看网址| 免费看黄色三级| 99re精彩视频| 日韩av色在线| 91九色国产在线播放| 国产精品v一区二区三区| 98精品在线视频| 国产精品视频男人的天堂| brazzers精品成人一区| 欧美丝袜自拍制服另类| 亚洲深爱激情| 国产视频福利在线| 国产精品美女视频| 一区二区欧美亚洲| 中国视频免男男gay| 欧美成在线视频| 欧美videos另类| 欧美最猛黑人xxxxx猛交| 亚洲国产成人久久综合一区| 欧美日韩理论| 日韩一区二区精品葵司在线| 俄罗斯黄色一级片| 丁香花在线电影| 91直播在线观看| 亚洲一区二区在线看| 在线日韩av永久免费观看| xxav国产精品美女主播| 666av成人影院在线观看| 88av看到爽| 亚洲国产免费看| 国产大学生av| 欧美精品videossex变态| 黄色小视频免费网站| 黄色网址在线视频| 亚洲av毛片在线观看| 精品久久久久久亚洲国产300| 亚洲熟妇av乱码在线观看| 91精品国产99久久久久久红楼| 精品人妻一区二区乱码| 亚洲影视九九影院在线观看| 欧美日一区二区三区| 春暖花开成人亚洲区| 亚洲一区二区偷拍| 精品国产欧美一区二区五十路| 日韩欧美电影在线| 亚洲无线看天堂av| 一二区成人影院电影网| 亚洲天堂av在线| 国产美女性感在线观看懂色av| 国产av一区二区三区精品| 久久综合五月天婷婷伊人| 视频在线观看国产精品| 加勒比av在线播放| 日本一二区不卡| 精品人妻一区二区三区麻豆91| a在线观看网站| 日本中文字幕在线看| 国产又黄又猛的视频| 亚洲 欧美 自拍偷拍| 老司机精品福利视频| 欧美亚洲天堂网| 久久免费视频66| 少妇av在线播放| 欧美日韩hd| 久久久性生活视频| 成人一区二区不卡免费| 亚洲精品一二三**| 加勒比在线日本| 中文字幕大看焦在线看| 99久久精品国产成人一区二区| 成人午夜黄色影院| 国产日产欧美一区二区| 亚洲女同志freevdieo| 国产在线播精品第三| 久久亚洲免费| 日本欧美高清| av电影在线网| 美女把尿口扒开让男人桶在线观看| 影音先锋在线中文| 在线播放国产精品| 欧美成人一区二区三区四区| 丁香综合av| 亚洲国产激情一区二区三区| 7777精品伊久久久大香线蕉语言| 久久人人97超碰国产公开结果| 视频直播国产精品| 国产情侣自拍小视频| 国产精品免费视频一区一| 欧美色倩网站大全免费| 精品欧美日韩| 国产福利视频在线播放| 男人天堂综合网| 色综合咪咪久久网| 国模视频一区| 天天摸天天操天天干| 凹凸av导航大全精品| 自拍视频一区| 日韩另类在线| 乱子伦一区二区| 国产三级国产精品国产国在线观看| www.蜜臀av.com| 性国裸体高清亚洲| 一区二区乱子伦在线播放| 亚洲精品成人精品456| 国产亚洲成av人片在线观看桃| 精品无码国产一区二区三区av| 国产欧美精品日韩区二区麻豆天美| 精品不卡在线视频| 日韩精品欧美一区二区三区| www.尤物.com| 国产高清中文字幕| 欧美一级午夜免费电影| 超碰在线人人干| 亚洲国产日韩欧美| 日本精品黄色| 精品国偷自产在线视频| av电影在线观看网站| 亚洲在线观看免费视频| 手机在线免费毛片| 最新国产在线精品91尤物| 美女视频网站在线观看| 久久国产电影| 亚洲小说春色综合另类电影| 国产精品蜜臀在线观看| 国精产品一区一区三区mba桃花| 青青青国产精品| 亚洲欧美一区二区视频| 一区二区三区中文字幕在线观看| 亚洲美女中文字幕| 亚洲国产婷婷香蕉久久久久久99| 欧美日韩精品一本二本三本| 国产欧美日韩在线播放| 麻豆蜜桃在线观看| 国产福利在线看| 午夜精品久久久久久久久久久| 露脸国产精品自产在线播| 久色乳综合思思在线视频| 国模叶桐国产精品一区| 成人在线观看免费视频| 一区二区三区高清| 麻豆一区在线观看| 久草在线视频福利| 很黄的网站在线观看| 欧美群妇大交群的观看方式| 麻豆视频国产| 拍拍拍999自拍偷| 免费人成在线观看网站| 欧美亚洲日本黄色| 高清av免费一区中文字幕| 亚洲欧美国产中文| 国产对白在线播放| 国产成人在线视频| 久久久久久久久久网| 亚洲欧美在线不卡| 性欧美精品xxxx| 日本黄色一区| 日批视频在线看| 影音先锋久久久| 黄色www视频| 偷拍25位美女撒尿视频在线观看| 久久久久久久久99精品大| 国模精品视频一区二区| 视频一区二区三区在线| 久久久久亚洲av成人无码电影| 一本久久a久久精品vr综合| 免费观看污网站| 78精品国产综合久久香蕉| 美日韩一二三区| 欧美人善zozσ性伦交| 色一区二区三区四区| 日韩av一级| 国内自拍视频一区二区三区| 99re亚洲国产精品| 狠狠v欧美ⅴ日韩v亚洲v大胸| 污视频网站在线观看| 天堂av在线免费| 国内精品久久久久久不卡影院| 亚洲午夜精品久久久久久人妖| 国产女人18毛片水真多18精品| www.超碰97.com| 美国成人av| 第一sis亚洲原创| 日韩av自拍偷拍| 偷拍女澡堂一区二区三区| 视频一区日韩| 亚洲成人综合视频| 韩国视频理论视频久久|