亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Quartz.NET的任務(wù)調(diào)度系統(tǒng)在醫(yī)院信息化中的應(yīng)用研究

        2023-06-25 23:37:59黃昌可
        電腦知識與技術(shù) 2023年13期
        關(guān)鍵詞:醫(yī)院信息化任務(wù)調(diào)度

        黃昌可

        摘要:文章探討了Quartz.NET任務(wù)調(diào)度系統(tǒng)在醫(yī)院信息化中的應(yīng)用。通過對任務(wù)調(diào)度系統(tǒng)的介紹和Quartz.NET的特點分析,文章提出了基于Quartz.NET的任務(wù)調(diào)度系統(tǒng)在醫(yī)院信息化中的應(yīng)用方案,主要包括任務(wù)調(diào)度系統(tǒng)的設(shè)計和實現(xiàn)、任務(wù)執(zhí)行監(jiān)控和報警機制的建立等方面。該方案在實際應(yīng)用中,有效提高了醫(yī)院信息化系統(tǒng)的運行效率和管理水平,減輕人工負擔,提高醫(yī)院服務(wù)水平,具有較高的實用價值和推廣意義。

        關(guān)鍵詞:Quartz.NET;任務(wù)調(diào)度;醫(yī)院信息化

        中圖分類號:TP311? ? ? 文獻標識碼:A

        文章編號:1009-3044(2023)13-0063-04

        開放科學(資源服務(wù))標識碼(OSID)

        0 引言

        隨著醫(yī)療技術(shù)的不斷更新和人口老齡化的加劇,醫(yī)院信息化已成為醫(yī)院管理和服務(wù)水平提升的必要手段。醫(yī)院信息化需要高效穩(wěn)定的系統(tǒng)支持,這就需要任務(wù)調(diào)度系統(tǒng)來定時執(zhí)行重復性任務(wù)、監(jiān)控任務(wù)執(zhí)行情況、自動報警等。

        任務(wù)調(diào)度系統(tǒng)是實現(xiàn)醫(yī)院信息化系統(tǒng)高效穩(wěn)定運行的關(guān)鍵技術(shù)之一。它可以通過減輕人工負擔和提高工作效率,幫助醫(yī)院信息化系統(tǒng)實現(xiàn)自動化運維和提高管理水平。

        1 Quartz.NET任務(wù)調(diào)度系統(tǒng)介紹

        Quartz.NET任務(wù)調(diào)度系統(tǒng)是一款開源的任務(wù)調(diào)度框架,具有高可靠性、高精度、高擴展性等特點。它支持復雜的任務(wù)調(diào)度邏輯和大規(guī)模分布式任務(wù)調(diào)度,基于C#編寫,具有良好的跨平臺性和可擴展性。Quartz.NET采用簡單易用、高度靈活的API,可以輕松創(chuàng)建和管理大量的定時任務(wù)。Quartz.NET可以靈活地配置任務(wù)的執(zhí)行周期,支持多種任務(wù)觸發(fā)器,同時還提供了任務(wù)執(zhí)行狀態(tài)監(jiān)控、異常報警、任務(wù)重試等功能。在醫(yī)院信息化系統(tǒng)中,Quartz.NET的應(yīng)用方案可以包括任務(wù)調(diào)度器、任務(wù)觸發(fā)器和任務(wù)執(zhí)行器等組件的設(shè)計和實現(xiàn),以及任務(wù)執(zhí)行監(jiān)控和報警機制的建立。

        通過基于Quartz.NET的任務(wù)調(diào)度系統(tǒng),醫(yī)院信息化系統(tǒng)可以實現(xiàn)自動化運維,自動化執(zhí)行重復性任務(wù),提高工作效率,減輕人工負擔。例如,醫(yī)院可以通過任務(wù)調(diào)度系統(tǒng)來實現(xiàn)定時備份數(shù)據(jù)庫、定時清理日志等任務(wù)的自動化執(zhí)行。此外,任務(wù)調(diào)度系統(tǒng)還可以對醫(yī)院信息化系統(tǒng)的運行情況進行實時監(jiān)控和管理,及時發(fā)現(xiàn)問題并進行處理,提高系統(tǒng)管理水平。在未來的發(fā)展中,可以進一步優(yōu)化任務(wù)調(diào)度系統(tǒng)的設(shè)計和實現(xiàn),加強任務(wù)執(zhí)行監(jiān)控和報警機制的建立,提高醫(yī)院信息化系統(tǒng)的智能化程度。例如,可以通過引入機器學習和人工智能等技術(shù),來自動優(yōu)化任務(wù)調(diào)度策略,提高任務(wù)執(zhí)行效率和質(zhì)量。

        2 基于Quartz.NET的任務(wù)調(diào)度系統(tǒng)在醫(yī)院信息化中的應(yīng)用方案

        2.1 Quartz.NET框架基礎(chǔ)概念

        Quartz框架是一個開源的作業(yè)調(diào)度框架,具有強大靈活的調(diào)度規(guī)則配置、作業(yè)狀態(tài)監(jiān)控和故障恢復等功能。使用Quartz框架可以為企業(yè)信息管理系統(tǒng)的定時調(diào)度任務(wù)進行簡單快捷靈活的配置調(diào)度機制,實現(xiàn)企業(yè)常規(guī)和非常規(guī)的復雜調(diào)度功能。開發(fā)人員可以根據(jù)業(yè)務(wù)的具體需求設(shè)置調(diào)度的時間點或時間間隔來進行具體的任務(wù)調(diào)度。Quartz框架能夠通過與Spring很好地集成來提供強大的、可靈活配置的調(diào)度功能并應(yīng)用到J2EE Web應(yīng)用的開發(fā)中,它在企業(yè)應(yīng)用調(diào)度開發(fā)中占據(jù)極其重要的地位,是目前比較受歡迎的且很易用的任務(wù)調(diào)度框架。

        Quartz任務(wù)調(diào)度框架最重要的核心三件套為:任務(wù)調(diào)度器(Scheduler) 、觸發(fā)器(Trigger) 和任務(wù)(Job) [1]。其中調(diào)度任務(wù)的核心管理者是任務(wù)調(diào)度器(Scheduler) ,調(diào)度任務(wù)的操作者是觸發(fā)器(Trigger) ,調(diào)度任務(wù)(Job) 是系統(tǒng)中相應(yīng)的功能模塊。開發(fā)者可以設(shè)定作業(yè)觸發(fā)器監(jiān)聽規(guī)則,針對特定的業(yè)務(wù)計劃需求來進行作業(yè)計劃,它們的關(guān)系如圖1所示。

        調(diào)度器(Scheduler) 是Quartz框架最主要的核心模塊,它對Quartz的應(yīng)用運行的環(huán)境起到管理的作用,Quartz框架主要的API也是調(diào)度器(Scheduler) 。對于利用Quartz開發(fā)的工程師來說,Scheduler是Quartz調(diào)度框架與工程師人員發(fā)生構(gòu)建的中間橋梁,大多數(shù)的交互行為都是以Scheduler為基礎(chǔ)進行的。Scheduler調(diào)度器通過協(xié)調(diào)框架內(nèi)的JobDetail任務(wù)模塊和Trigger觸發(fā)器模塊來執(zhí)行具體的任務(wù)調(diào)度事件,而不是獨立地完成一個調(diào)度任務(wù)。JobDetial和Trigger只需要注冊登記到Scheduler,調(diào)度作業(yè)就會伴隨著應(yīng)用的啟動自動執(zhí)行。一個完整的Quartz調(diào)度任務(wù),必須包括三個核心組件要素:觸發(fā)器(Trigger) 、調(diào)度器(Scheduler) 和任務(wù)(Job) 。觸發(fā)器就是一個定時任務(wù)的驅(qū)動器,負責對配置的作業(yè)進行定時執(zhí)行。一個調(diào)度任務(wù)可以配置多個觸發(fā)器,但一個觸發(fā)器只能驅(qū)動一個作業(yè)任務(wù)。Quartz作為一款優(yōu)秀的開源調(diào)度框架,它能夠與Spring集成整合實現(xiàn)強大的調(diào)度作業(yè),而且對運行環(huán)境也沒有特別的依賴,此外Quartz還提供了強大的集群及分布式能力,其強大的調(diào)度機制支持更多個性化的調(diào)度方法[2]。

        Quartz.NET是一個全功能開放的開源作業(yè)調(diào)度系統(tǒng)。完全由C#編寫的.NET類庫,是一個非常流行的開源Java工作調(diào)度框架QuartzAPI的移植,可用于winform和asp.net應(yīng)用中[3]。它擁有強大的靈活性,但同時也保持了簡潔性。能夠用它來創(chuàng)建一個簡單的或復雜的調(diào)度作業(yè)。它具有大量特性,比如:數(shù)據(jù)庫支持、集群、插件、支持Cron表達式等。

        2.2 模塊接口介紹

        在Quartz.NET中,有以下幾個重要的類:

        1) Schdeuler類:這個類的方法是將調(diào)度任務(wù)數(shù)據(jù)寫入系統(tǒng)內(nèi)存,使Quartz.NET在設(shè)定的時間觸發(fā)作業(yè)執(zhí)行。

        2) Job接口:用戶自定義的作業(yè)在該模塊實現(xiàn)。用戶只需將自定義的需求在Job接口的execute方法中實現(xiàn),任務(wù)被觸發(fā)時,execute方法便會被調(diào)用執(zhí)行,即用戶自定義的邏輯被執(zhí)行。

        3) JobDetail類:該類包含了任務(wù)的各種屬性,如任務(wù)名稱、任務(wù)分組名、任務(wù)類名等。而任務(wù)類名則是實現(xiàn)Job接口的任務(wù)類,它包含了具體執(zhí)行任務(wù)的邏輯。在JobDetail類中,還可以添加一些JobDataMap數(shù)據(jù),用于傳遞任務(wù)執(zhí)行所需的參數(shù)。

        4) Trigger類:該類是Quartz.NET的核心類,用于觸發(fā)作業(yè)。它支持兩種觸發(fā)類型的設(shè)置:Cron表達式型和Interval型。通過設(shè)置開始時間、結(jié)束時間、執(zhí)行次數(shù)等,可以實現(xiàn)對任務(wù)的詳細控制。Cron表達式型可以設(shè)置更加豐富和復雜的時間觸發(fā)規(guī)則,而Interval型則可以設(shè)置固定的時間間隔來觸發(fā)任務(wù)。通過Trigger類,可以更加靈活地配置Quartz框架中的任務(wù),實現(xiàn)更加精細化的任務(wù)調(diào)度。

        ①Cron表達式方式

        Cron表達式是Quartz.NET特有的字符串,當Quartz.NET讀取到該表達式時,會自動解析出該表達式的含義,從而實現(xiàn)用戶期望的調(diào)度計劃,表達式分為七段,分別表示秒、分、時、日、月、周、年。示例見表1。

        ②Inteval方式

        Inteval方式與Cron表達式不同,它以精確的間隔來觸發(fā)任務(wù),即每次觸發(fā)的間隔是恒定不變的。Quartz.NET中間隔的單位一般是秒、分、時,最大不會大于小時[4]。

        在Quartz.NET的架構(gòu)中,自定義任務(wù)的實現(xiàn)需要實現(xiàn)Job接口,并將業(yè)務(wù)邏輯代碼寫入execute方法中。任務(wù)的具體參數(shù)由JobDetail類定義,包括任務(wù)名稱、任務(wù)分組名、任務(wù)類名等。任務(wù)的調(diào)度計劃由Trigger類定義,如指定任務(wù)的觸發(fā)時間點或時間間隔等。注冊任務(wù)到系統(tǒng)進程需要調(diào)用Scheduler類的Schedule.scheduleJob(JobDetail, Trigger)方法。當調(diào)度任務(wù)被觸發(fā)時,任務(wù)引擎通過Scheduler類解析出JobDetail類中包含的作業(yè)參數(shù),并通過JobDataMap數(shù)據(jù)傳遞任務(wù)所需的參數(shù)給新的任務(wù)實例,用于執(zhí)行任務(wù)的execute方法。

        Quartz框架提供了JobDetail類和Trigger類來幫助實現(xiàn)任務(wù)的配置和調(diào)度計劃,從而實現(xiàn)任務(wù)的自動化調(diào)度和執(zhí)行。這些特性可以提高系統(tǒng)的可靠性和效率。

        2.3 基礎(chǔ)使用介紹

        Quartz.NET框架的核心模塊是調(diào)度器scheduler、job類的實例JobDetail以及trigger類的實例SimpleTrigger和CronTrigger。在使用Quartz.NET框架時,先用schedulerFactory實例化一個調(diào)度器scheduler。在程序代碼中可以直接實例化這個工廠類并且使用工廠的實例,其示例代碼如下:

        ISchedulerFactory schedulerFactory=new ISchedulerFactory();

        IScheduler scheduler = schedulerFactory.GetScheduler();

        scheduler.Start();

        JobDetail對象用于綁定Job實例。它包含了Job的各種屬性,其示例代碼如下:

        public class HttpResultfulJob : IJob

        {

        public Task Execute(IJobExecutionContext context)

        {

        #TaskOptions taskOptions = context.GetTaskOptions();獲取job的參數(shù)

        Console.Out.WriteLineAsync("Test HttpResultfulJob Job!");

        }}

        然后可以在Main方法中綁定該Job:

        IJobDetail job = JobBuilder.Create()

        .WithIdentity(taskOptions.TaskName, taskOptions.GroupName).Build();

        Trigger對象被用來觸發(fā)自定義的任務(wù)計劃。希望將任務(wù)加入進程,要實例化一個Trigger并且“調(diào)整”它的屬性以滿足想要的進度安排。Quartz.NET框架里面有許多不同類型的Trigger,但最常用的Trigge類是SimpleTrigger和CronTrigger SimpleTrigger。立即運行,按設(shè)定的Cron表達式執(zhí)行代碼如下:

        ITITrigger trigger = TriggerBuilder.Create()

        .WithIdentity(taskOptions.TaskName, taskOptions.GroupName)

        .StartNow()

        .WithDescription(taskOptions.Describe)

        .WithCronSchedule(taskOptions.Interval)

        .Build();

        最后將任務(wù)注冊到scheduler中即可:

        scheduler.ScheduleJob(job, trigger);

        2.4 任務(wù)調(diào)度實現(xiàn)

        首先,需要將Quartz.net添加到項目中??梢酝ㄟ^NuGet包管理器或通過手動下載并添加引用的方式添加Quartz.net,接著創(chuàng)建一個Job類,在這個類中實現(xiàn)實際的任務(wù)。Job類必須實現(xiàn)IJob接口,并實現(xiàn)Execute方法。Execute方法是任務(wù)的實際代碼。需要注意的是,Job類必須是一個無狀態(tài)的類,因為Quartz.net會在需要執(zhí)行Job時創(chuàng)建Job的實例,因此如果Job類包含任何狀態(tài),可能會導致意外的行為。完成Job部分后,再創(chuàng)建Trigger,指定任務(wù)的執(zhí)行時間。Trigger必須指定一個唯一的名稱和分組,以便在Scheduler中進行管理。然后就可以創(chuàng)建Scheduler,也就是任務(wù)調(diào)度的核心組件,將Job和Trigger添加到Scheduler中。Scheduler將根據(jù)Trigger指定的時間表執(zhí)行Job??梢允褂肧tdSchedulerFactory來創(chuàng)建Scheduler實例。

        最后可以通過調(diào)用Scheduler的Start方法來啟動Scheduler。此時,Scheduler就會開始執(zhí)行Job,并按照Trigger指定的時間表觸發(fā)任務(wù)了。

        2.5 可視化

        Quartz.NET提供了一些調(diào)度器監(jiān)聽器和日志記錄器,方便對任務(wù)的執(zhí)行情況進行監(jiān)控和調(diào)試。

        為了方便任務(wù)的管理,可以使用可視化設(shè)計對所有任務(wù)進行界面化的管理。將每個定時任務(wù)的各項屬性,如作業(yè)的名稱、作業(yè)所屬分組、Cron表達式、作業(yè)描述、執(zhí)行情況、執(zhí)行api地址等以一條完整記錄形式存入數(shù)據(jù)庫中。這樣,一個個任務(wù)就轉(zhuǎn)化成關(guān)系表中的一條條記錄,定時任務(wù)的可視化管理也就轉(zhuǎn)變?yōu)槌R姷年P(guān)系表的可視化管理[5]。

        使用MVC架構(gòu),將頁面操作,與調(diào)度任務(wù)的控制,包裝到控制器(controller) 中,在視圖(View) 中調(diào)用相關(guān)方法,展示及持久化調(diào)度任務(wù)數(shù)據(jù),部分展示如圖2、圖3。

        2.6 解決應(yīng)用程序池回收

        當應(yīng)用程序池長時間運行,IIS 會將其自動回收,以保證服務(wù)器的穩(wěn)定性和性能。但是這種自動回收有時會影響應(yīng)用程序的正常運行,因此需要進行相應(yīng)的處理[6]。這里采用注冊系統(tǒng)服務(wù),定時調(diào)用處理。

        在Quart.NET的Web項目中創(chuàng)建一個HealthController類,并增加一個KeepAlive方法,方法的實現(xiàn),直接返回當前時間即可,然后在應(yīng)用程序的項目中調(diào)用這個地址,并將定時調(diào)用的程序注冊為系統(tǒng)服務(wù)。

        應(yīng)用注冊為系統(tǒng)服務(wù).bat:

        %SystemRoot%\Microsoft.NET\Framework\v4.0.30319\installutil.exe

        D:\...\bin\Debug\Quartz.NET.WindowsService.exe

        Net Start Quartz.Net? sc config Quartz.Net start= auto

        3 實際應(yīng)用效果分析

        除了提高醫(yī)院信息化系統(tǒng)的運行效率和管理水平之外,Quartz.NET的任務(wù)調(diào)度系統(tǒng)還可以帶來以下實際應(yīng)用效果:

        1) 降低系統(tǒng)維護成本:使用任務(wù)調(diào)度系統(tǒng)可以減少人工干預,降低系統(tǒng)維護成本。自動化執(zhí)行的任務(wù)可以避免人為錯誤和疏漏,提高系統(tǒng)穩(wěn)定性和可靠性。例如,定時備份數(shù)據(jù)庫、定時清理日志等任務(wù)都可以通過任務(wù)調(diào)度系統(tǒng)來實現(xiàn)自動化執(zhí)行,從而降低系統(tǒng)維護成本。

        2) 提高數(shù)據(jù)安全性:任務(wù)調(diào)度系統(tǒng)可以實現(xiàn)數(shù)據(jù)備份、數(shù)據(jù)清理等任務(wù),保護醫(yī)院信息化系統(tǒng)中的重要數(shù)據(jù),提高數(shù)據(jù)安全性。例如,定時備份數(shù)據(jù)庫可以保護數(shù)據(jù)不會因為系統(tǒng)故障或人為錯誤而丟失,提高數(shù)據(jù)安全性。任務(wù)調(diào)度系統(tǒng)還可以監(jiān)控任務(wù)的執(zhí)行情況,及時發(fā)現(xiàn)異常情況并進行處理,進一步提高數(shù)據(jù)安全性。

        3) 支持多樣化的任務(wù)調(diào)度:Quartz.NET的任務(wù)調(diào)度系統(tǒng)支持多種任務(wù)調(diào)度方式,如簡單調(diào)度、Cron調(diào)度等,可以滿足不同的任務(wù)調(diào)度需求。例如,簡單調(diào)度可以設(shè)置指定時間間隔重復執(zhí)行任務(wù),Cron調(diào)度可以根據(jù)復雜的時間表達式來執(zhí)行任務(wù),滿足不同的任務(wù)調(diào)度需求。同時,任務(wù)調(diào)度系統(tǒng)還支持任務(wù)依賴關(guān)系設(shè)置,可以確保任務(wù)按照正確的順序執(zhí)行,避免任務(wù)之間的沖突和錯誤。

        4) 增強系統(tǒng)可擴展性:任務(wù)調(diào)度系統(tǒng)可以通過自定義Job和Trigger來實現(xiàn)自定義任務(wù)的調(diào)度,增強系統(tǒng)的可擴展性和靈活性。例如,自定義Job和Trigger可以滿足醫(yī)院信息化系統(tǒng)中不同業(yè)務(wù)部門的需求,增強系統(tǒng)可擴展性。此外,任務(wù)調(diào)度系統(tǒng)還支持集群部署,可以通過增加節(jié)點來擴展系統(tǒng)的處理能力。這意味著,當系統(tǒng)負載增加時,可以通過增加節(jié)點來提高系統(tǒng)的處理能力,增強系統(tǒng)的可擴展性。

        5) 提高任務(wù)執(zhí)行效率:任務(wù)調(diào)度系統(tǒng)可以實現(xiàn)任務(wù)并發(fā)執(zhí)行,提高任務(wù)執(zhí)行效率。例如,在醫(yī)院信息化系統(tǒng)中,有些任務(wù)需要同時執(zhí)行多個實例,任務(wù)調(diào)度系統(tǒng)可以根據(jù)系統(tǒng)配置的并發(fā)數(shù)來實現(xiàn)多個實例的同時執(zhí)行,提高任務(wù)執(zhí)行效率。

        因此,Quartz.NET的任務(wù)調(diào)度系統(tǒng)在醫(yī)院信息化系統(tǒng)中具有重要的應(yīng)用價值,可以為醫(yī)院信息化系統(tǒng)的運行和管理帶來更多實際效果。任務(wù)調(diào)度系統(tǒng)的自動化執(zhí)行和監(jiān)控功能可以提高運行效率和管理水平,同時降低系統(tǒng)維護成本,提高數(shù)據(jù)安全性,滿足不同的任務(wù)調(diào)度需求,增強系統(tǒng)可擴展性,提高任務(wù)執(zhí)行效率。

        4 結(jié)束語

        Quartz.NET作業(yè)調(diào)度框架的API在多個方面都表現(xiàn)出了極佳的性能與易用性。在醫(yī)院信息化中,該框架具有較高的實用價值和推廣意義。可視化的作業(yè)調(diào)度管理不僅可以通過頁面直觀地展示各個任務(wù)的運行狀態(tài),而且上次任務(wù)失敗原因也會被捕獲并在頁面上展示。這方便了開發(fā)者或運維人員及時發(fā)現(xiàn)任務(wù)調(diào)度中存在的問題,以便快速解決問題。

        參考文獻:

        [1] 王添男,李新慶,徐曉慶,等.基于氣象大數(shù)據(jù)云平臺的自動化告警應(yīng)用研究[J].寧夏工程技術(shù),2021,20(4):352-356.

        [2] 劉光明,朱肖穎.Web應(yīng)用與Quartz的整合研究[J].企業(yè)科技與發(fā)展,2018(3):114-116.

        [3] 李林,楊才,關(guān)曉軍,等.自動氣象站監(jiān)控平臺數(shù)據(jù)傳輸故障短信通知系統(tǒng)的開發(fā)與應(yīng)用[J].青海科技,2017,24(4):58-65.

        [4] 沈宇杰.基于Quartz的可自定義作業(yè)調(diào)度系統(tǒng)的設(shè)計與實現(xiàn)[J].通化師范學院學報,2019,40(4):78-81.

        [5] 葉剛.基于Quartz的可視化定時任務(wù)管理方案[J].電子技術(shù)與軟件工程,2018(17):139-140.

        [6] 田雅.基于.NET應(yīng)用系統(tǒng)性能優(yōu)化的研究與實踐[J].計算機光盤軟件與應(yīng)用,2013(5):173-174.

        【通聯(lián)編輯:謝媛媛】

        猜你喜歡
        醫(yī)院信息化任務(wù)調(diào)度
        基于改進NSGA-Ⅱ算法的協(xié)同制造任務(wù)調(diào)度研究
        基于時間負載均衡蟻群算法的云任務(wù)調(diào)度優(yōu)化
        基于VMware技術(shù)的醫(yī)院信息系統(tǒng)部署
        醫(yī)院信息系統(tǒng)集成平臺建設(shè)與體會
        醫(yī)院信息化建設(shè)中網(wǎng)絡(luò)安全分析與防護
        淺析門禁系統(tǒng)在醫(yī)院管理中的應(yīng)用
        云計算環(huán)境中任務(wù)調(diào)度策略
        云計算中基于進化算法的任務(wù)調(diào)度策略
        尤物蜜桃视频一区二区三区| 国产超碰人人模人人爽人人喊| 蜜桃av噜噜一区二区三区| 亚洲无码夜夜操| 人妻丰满熟妇av无码区不卡| 久久国产精久久精产国| 久久国产精品99精品国产987| 黄页国产精品一区二区免费| 国产一区二区三区成人| 久久亚洲精品国产亚洲老地址| 无码人妻久久一区二区三区免费 | 久久精品视频在线看99| 亚洲电影一区二区| 日本黄色特级一区二区三区| 国产精品午夜夜伦鲁鲁| 免费视频成人片在线观看 | 2021国产最新在线视频一区| 视频一区视频二区亚洲免费观看| 精品国产日韩亚洲一区在线| 免费a级毛片又大又粗又黑| 亚洲精品午夜无码专区| 真人男女做爰无遮挡免费视频| 果冻国产一区二区三区| 日本视频在线播放一区二区| 国产成人无码a在线观看不卡| 欧美性受xxxx白人性爽| 白又丰满大屁股bbbbb| 亚洲自拍愉拍| 人妻中出中文字幕在线| 91精品国产色综合久久| 天天爽夜夜爱| 性一交一乱一伦a片| 无码免费午夜福利片在线| 亚洲av无吗国产精品| 日本丰满少妇xxxx| 天天噜日日噜狠狠噜免费| 久久久精品久久日韩一区综合| 国产精品麻豆成人av| 亚洲av人片在线观看| 亚洲人成无码区在线观看| 麻豆国产人妻欲求不满|