久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營的一線實(shí)戰(zhàn)洞察。

排隊(duì)機(jī)叫號(hào)源代碼解析:狀態(tài)機(jī)模型與數(shù)據(jù)庫并發(fā)控制

排隊(duì)機(jī)叫號(hào)源代碼解析:狀態(tài)機(jī)模型與數(shù)據(jù)庫并發(fā)控制 簡介面向C#初學(xué)者以及正在設(shè)計(jì)排隊(duì)機(jī)、叫號(hào)系統(tǒng)的開發(fā)者這套源代碼提供了一套經(jīng)過多年客戶實(shí)際使用驗(yàn)證的完整方案覆蓋叫號(hào)邏輯、數(shù)據(jù)庫訪問、界面展示與報(bào)表打印等環(huán)節(jié)可幫助理解真實(shí)項(xiàng)目中的模塊劃分與數(shù)據(jù)流轉(zhuǎn)方式。壓縮包共249個(gè)文件以172個(gè)cs源碼文件為主體輔以44個(gè)resx界面資源、9個(gè)ico圖標(biāo)、6個(gè)user自定義控件、5個(gè)settings配置以及2個(gè)rdlc報(bào)表定義整體僅1.29MB結(jié)構(gòu)緊湊便于直接閱讀與二次開發(fā)。已有1617人瀏覽學(xué)習(xí)。代碼中包含DbHelperSQL等數(shù)據(jù)庫輔助類、frmCaller與frmScreen等核心窗體以及MyCommon公共方法模塊覆蓋從數(shù)據(jù)庫操作到多窗體協(xié)作的典型實(shí)現(xiàn)適合初學(xué)者拆解學(xué)習(xí)也可為實(shí)際項(xiàng)目提供可復(fù)用的設(shè)計(jì)思路與代碼骨架節(jié)省從零搭建系統(tǒng)的時(shí)間。1. 排隊(duì)機(jī)叫號(hào)源代碼本質(zhì)是一臺(tái)隊(duì)列狀態(tài)機(jī)「排隊(duì)機(jī)叫號(hào)源代碼」這幾個(gè)字聽起來像是一個(gè)「能叫號(hào)的程序」但真正拿到這種項(xiàng)目的人會(huì)發(fā)現(xiàn)叫號(hào)只是最表面的動(dòng)作。取號(hào)、分配、叫號(hào)、過號(hào)、重呼、結(jié)單每一步都是一個(gè)狀態(tài)在數(shù)據(jù)庫里的流轉(zhuǎn)而最常見的翻車現(xiàn)場——兩個(gè)窗口搶同一個(gè)號(hào)、客戶沒到窗口號(hào)就過了、日?qǐng)?bào)表數(shù)字對(duì)不上——全都出在狀態(tài)沒有守住而不是出在界面按鈕上。這套源代碼的價(jià)值在于把整條隊(duì)列的狀態(tài)管理從頭到尾做完了數(shù)據(jù)庫表怎么建、并發(fā)時(shí)怎么鎖號(hào)、過號(hào)之后怎么拉回來邏輯是一脈貫通的。它適合兩類人一類是接手維護(hù)網(wǎng)點(diǎn)排隊(duì)機(jī)系統(tǒng)的從業(yè)者想快速看懂老工程另一類是在做數(shù)據(jù)庫課程設(shè)計(jì)、需要真實(shí)業(yè)務(wù)場景源碼來改造的學(xué)生。2. 取號(hào)到結(jié)單的完整流轉(zhuǎn)四個(gè)角色與一套狀態(tài)碼任何一套排隊(duì)機(jī)源碼不管是銀行大堂、政務(wù)大廳還是醫(yī)院藥房用的拆開看都是四個(gè)角色在操作同一張?zhí)柎a流水表取號(hào)端負(fù)責(zé)產(chǎn)生號(hào)碼窗口端負(fù)責(zé)消費(fèi)號(hào)碼顯示端負(fù)責(zé)把當(dāng)前狀態(tài)廣播出去管理端負(fù)責(zé)配置和統(tǒng)計(jì)。這套代碼里四個(gè)角色沒有各自建表而是共享一張流水表靠狀態(tài)碼區(qū)分「這個(gè)號(hào)碼現(xiàn)在走到哪一步」。2.1 四個(gè)角色的職責(zé)劃分取號(hào)端一般是觸摸屏或者窗口人員代取動(dòng)作只有一個(gè)調(diào)用取號(hào)邏輯生成一個(gè)當(dāng)天唯一的業(yè)務(wù)號(hào)碼插入流水表并置為待叫狀態(tài)。窗口端是叫號(hào)人員手里的操作界面包含叫下一個(gè)、過號(hào)、重呼、開始辦理、結(jié)單這五個(gè)動(dòng)作是最復(fù)雜的一端。顯示端不寫數(shù)據(jù)庫只做一件事情把「當(dāng)前正在叫的號(hào)碼」和「排隊(duì)人數(shù)」拉出來推送到 LED、電視屏或語音盒子。管理端負(fù)責(zé)維護(hù)業(yè)務(wù)類型表、窗口表以及查看當(dāng)日流水和統(tǒng)計(jì)報(bào)表。把這四個(gè)角色的調(diào)用關(guān)系畫出來這套源碼至少能看懂八成。剩下兩成是細(xì)節(jié)過號(hào)以后號(hào)碼怎么重新進(jìn)入隊(duì)列、兩個(gè)窗口同時(shí)按叫號(hào)時(shí)數(shù)據(jù)庫怎么保證不重號(hào)這兩處是判斷一套排隊(duì)機(jī)代碼水平的分水嶺。2.2 號(hào)碼生命周期狀態(tài)位是隊(duì)列的命脈排隊(duì)機(jī)的核心表里一定會(huì)有一個(gè)狀態(tài)字段這套源碼用的是整數(shù)狀態(tài)位設(shè)計(jì)很干凈只有六個(gè)值狀態(tài)值含義觸發(fā)動(dòng)作1待叫已取號(hào)還在排隊(duì)取號(hào)成功時(shí)寫入2已叫正在窗口辦理或正在等待客戶窗口叫號(hào)時(shí)寫入3過號(hào)叫了沒來窗口點(diǎn)過號(hào)時(shí)寫入4保留位部分版本用作「辦理中」視項(xiàng)目而定5完成業(yè)務(wù)辦結(jié)窗口結(jié)單時(shí)寫入6取消/作廢取號(hào)后離開管理端或自動(dòng)清理時(shí)寫入為什么用整數(shù)而不是用字符串因?yàn)榻刑?hào)邏輯里要頻繁按狀態(tài)過濾整數(shù)可以直接進(jìn)索引還能用StatusId IN (1, 2)這類寫法一次撈出「還在隊(duì)列里」的所有號(hào)碼。我以前見過一個(gè)版本用中文狀態(tài)字段報(bào)表統(tǒng)計(jì)時(shí)WHERE Status已叫 AND Status!過號(hào)這種條件寫得到處都是后來改狀態(tài)值差點(diǎn)把線上數(shù)據(jù)改崩。這套狀態(tài)機(jī)里唯一需要嚴(yán)格并發(fā)控制的是「1→2」這一步待叫的號(hào)碼可能被多個(gè)窗口同時(shí)競爭。其余的狀態(tài)遷移比如過號(hào)、重呼、結(jié)單都是操作者針對(duì)自己窗口已經(jīng)持有的號(hào)碼做更新天然不會(huì)沖突。2.3 一條完整的指令序列把一次完整業(yè)務(wù)串起來看流水表的變化是這樣的步驟操作者動(dòng)作數(shù)據(jù)變更1客戶取號(hào)機(jī)出票插入流水StatusId1記錄業(yè)務(wù)類型和取號(hào)時(shí)間2窗口人員點(diǎn)「叫下一個(gè)」原子鎖號(hào)StatusId 1→2寫入 WinId、CallTimeCallCount13a窗口人員客戶到窗點(diǎn)「開始辦理」StatusId 2→5寫 FinishTime3b窗口人員客戶未到點(diǎn)「過號(hào)」StatusId 2→3保留原 WinId3c窗口人員客戶回來點(diǎn)「重呼」StatusId 3→2CallCount1重寫 CallTime4客戶取號(hào)后離開管理端或日終清理時(shí)置 StatusId6這套序列是排查問題的總線索。比如報(bào)表里完成數(shù)偏少就去查是不是有大量記錄卡在狀態(tài) 2 或狀態(tài) 3比如兩個(gè)窗口叫出同一個(gè)號(hào)就去查步驟 2 的鎖號(hào)邏輯是不是原子的比如重呼后號(hào)碼跑到別的窗口去了就去查重呼時(shí)是不是錯(cuò)誤地把 WinId 清空了。提示重呼時(shí)不應(yīng)該清空 WinId??蛻袈牭浇刑?hào)后已經(jīng)在走向原窗口重呼只是把號(hào)碼拉回「已叫」?fàn)顟B(tài)窗口還是原來那個(gè)窗口。如果重呼時(shí)把 WinId 置空這個(gè)號(hào)碼就會(huì)被其他窗口當(dāng)作待叫號(hào)搶走窗口之間必然起沖突。3. 數(shù)據(jù)庫是這套源碼的心臟三張核心表與關(guān)鍵 SQL數(shù)據(jù)庫開發(fā)類項(xiàng)目最怕看到一坨沒有主鍵、沒有索引、全靠程序里SELECT *硬撐的表。這套排隊(duì)機(jī)源碼的表結(jié)構(gòu)走的是經(jīng)典的中型業(yè)務(wù)系統(tǒng)路線三張核心表職責(zé)分明索引和約束都建在點(diǎn)子上。3.1 業(yè)務(wù)類型表控制號(hào)碼前綴與當(dāng)日序號(hào)業(yè)務(wù)類型表的作用是給每種業(yè)務(wù)一個(gè)獨(dú)立隊(duì)列。銀行網(wǎng)點(diǎn)里個(gè)人業(yè)務(wù)、對(duì)公業(yè)務(wù)、理財(cái)業(yè)務(wù)是三條隊(duì)政務(wù)大廳里社保、稅務(wù)、不動(dòng)產(chǎn)是三條隊(duì)每一條隊(duì)有獨(dú)立的號(hào)碼前綴和當(dāng)日序號(hào)。CREATE TABLE dbo.t_BizType ( BizTypeId INT IDENTITY(1,1) PRIMARY KEY, -- 業(yè)務(wù)類型ID BizName NVARCHAR(20) NOT NULL, -- 業(yè)務(wù)名顯示在取號(hào)機(jī)上 Prefix NVARCHAR(4) NOT NULL, -- 號(hào)碼前綴如 A/B/C CurrentSeq INT NOT NULL, -- 當(dāng)日已發(fā)到的序號(hào) StartNo INT NOT NULL DEFAULT 1, -- 當(dāng)日起始序號(hào) Status TINYINT NOT NULL DEFAULT 1 -- 1啟用 0停用 );這里最關(guān)鍵的是CurrentSeq字段。取號(hào)邏輯就是把它加一然后拼上前綴生成號(hào)碼比如前綴是 A、當(dāng)前序號(hào)是 5號(hào)碼就是 A0005。這個(gè)字段有一個(gè)隱含問題跨天之后要?dú)w零。常見做法是每天凌晨跑一個(gè)定時(shí)任務(wù)執(zhí)行UPDATE dbo.t_BizType SET CurrentSeq StartNo - 1或者在程序啟動(dòng)時(shí)檢測系統(tǒng)日期變化后統(tǒng)一重置。粗放一點(diǎn)的項(xiàng)目直接在日終結(jié)算時(shí)重置也能跑但遇到跨天不關(guān)機(jī)的取號(hào)機(jī)就有概率發(fā)重號(hào)這個(gè)坑后面細(xì)說。3.2 窗口表綁定業(yè)務(wù)類型窗口表負(fù)責(zé)定義「哪個(gè)窗口辦哪種業(yè)務(wù)」字段不多。CREATE TABLE dbo.t_Window ( WinId INT IDENTITY(1,1) PRIMARY KEY, WinName NVARCHAR(20) NOT NULL, -- 顯示名如 1號(hào)窗口 BizTypeId INT NOT NULL, -- 綁定的業(yè)務(wù)類型 DevStatus TINYINT NOT NULL DEFAULT 1, -- 1正常 0暫停 2午休 LastCallNo NVARCHAR(16) NULL -- 最近一次叫的號(hào)便于恢復(fù)現(xiàn)場 );窗口跟業(yè)務(wù)類型是「多對(duì)一」還是「一對(duì)一」實(shí)際項(xiàng)目里經(jīng)常是一個(gè)窗口在下午切換業(yè)務(wù)比如上午辦個(gè)人業(yè)務(wù)、下午辦對(duì)公業(yè)務(wù)。所以窗口端界面上要有「切換業(yè)務(wù)類型」的功能切換時(shí)業(yè)務(wù)類型表不變只改窗口當(dāng)前綁定的 BizTypeId??吹皆创a里直接在t_Window上做這個(gè)綁定而不是做成中間映射表說明作者是按實(shí)際營業(yè)場景設(shè)計(jì)的不是按教科書設(shè)計(jì)的。3.3 號(hào)碼流水表隊(duì)列本身流水表是這套系統(tǒng)里數(shù)據(jù)量最大的表一天幾千到幾萬條一個(gè)月后就是幾十萬條。沒有索引的流水表撐不過三個(gè)月查詢會(huì)明顯變慢。CREATE TABLE dbo.t_TicketFlow ( FlowId BIGINT IDENTITY(1,1) PRIMARY KEY, TicketNo NVARCHAR(16) NOT NULL, -- 業(yè)務(wù)號(hào)碼如 A0005 BizTypeId INT NOT NULL, -- 指向業(yè)務(wù)類型表 StatusId TINYINT NOT NULL, -- 1待叫 2已叫 3過號(hào) 5完成 6取消 WinId INT NULL, -- 處理該號(hào)的窗口叫號(hào)后寫入 CreateTime DATETIME NOT NULL, -- 取號(hào)時(shí)間 CallTime DATETIME NULL, -- 叫號(hào)時(shí)間 FinishTime DATETIME NULL, -- 結(jié)單時(shí)間 CallCount TINYINT NOT NULL DEFAULT 0, -- 叫號(hào)/重呼次數(shù) Source NVARCHAR(10) NOT NULL DEFAULT TOUCH ); CREATE INDEX IX_Flow_Queue ON dbo.t_TicketFlow(StatusId, BizTypeId, CreateTime) INCLUDE(TicketNo, WinId);IX_Flow_Queue這個(gè)索引是給取號(hào)邏輯專門建的按狀態(tài)、業(yè)務(wù)類型、時(shí)間排序取最老的待叫號(hào)。因?yàn)椴樵冎灰刈xTicketNo和WinId用 INCLUDE 直接把這些列塞進(jìn)索引葉子節(jié)點(diǎn)避免每次回表讀整行。日終統(tǒng)計(jì)時(shí)流水表按CreateTime過濾這個(gè)索引也能頂一部分查詢。需要注意INCLUDE 語法是 SQL Server 的寫法。如果把這套表結(jié)構(gòu)遷移到 MySQL 8要改成普通聯(lián)合索引(StatusId, BizTypeId, CreateTime, TicketNo, WinId)遷移到 PostgreSQL 則可以直接建INCLUDE兩者的索引機(jī)制類似。關(guān)鍵的統(tǒng)計(jì) SQL 有兩句。一句是看每個(gè)窗口的待辦積壓SELECT w.WinName, SUM(CASE WHEN f.StatusId 1 THEN 1 ELSE 0 END) AS WaitingCount FROM dbo.t_Window w LEFT JOIN dbo.t_TicketFlow f ON f.BizTypeId w.BizTypeId AND f.WinId IS NULL AND CONVERT(DATE, f.CreateTime) CONVERT(DATE, GETDATE()) WHERE w.DevStatus 1 GROUP BY w.WinName;另一句是看全天的平均等待時(shí)長這是營業(yè)廳管理最看重的指標(biāo)SELECT AVG(DATEDIFF(SECOND, CreateTime, CallTime)) AS AvgWaitSec, COUNT(*) AS CalledCount FROM dbo.t_TicketFlow WHERE CONVERT(DATE, CreateTime) CONVERT(DATE, GETDATE()) AND CallTime IS NOT NULL;注意CONVERT(DATE, CreateTime)這類寫法在流水表數(shù)據(jù)量大時(shí)會(huì)放棄索引掃描全表。幾十萬條以內(nèi)沒感覺上了百萬條就要改成CreateTime 2025-06-01 AND CreateTime 2025-06-02的區(qū)間寫法。調(diào)試時(shí)如果發(fā)現(xiàn)報(bào)表越跑越慢先看執(zhí)行計(jì)劃是不是走了索引。4. 多窗口并發(fā)與調(diào)度策略怎么保證兩個(gè)窗口不叫到同一個(gè)號(hào)排隊(duì)機(jī)的并發(fā)問題集中在兩個(gè)窗口同時(shí)按「叫下一個(gè)」的瞬間。兩個(gè)窗口讀取到同一個(gè)待叫號(hào)碼、同時(shí)更新成功屏幕上兩個(gè)窗口都在喊同一個(gè)號(hào)客戶一臉懵。這個(gè)問題不是玄學(xué)是典型的讀寫競態(tài)解決思路只有一個(gè)把「查詢待叫號(hào)碼」和「把號(hào)碼標(biāo)記為己叫」合并成一個(gè)原子操作。4.1 重號(hào)是怎么發(fā)生的最容易出問題的寫法是「先查再更」窗口端先執(zhí)行SELECT TOP 1 ... WHERE StatusId 1拿到一個(gè)號(hào)碼顯示在界面上用戶點(diǎn)確認(rèn)后再執(zhí)行UPDATE ... SET StatusId 2。問題出在兩步之間有空窗窗口 A 查到了 A0005界面彈出確認(rèn)框窗口 B 在確認(rèn)框彈出的這一瞬間也執(zhí)行查詢同樣拿到 A0005兩邊都點(diǎn)確認(rèn)兩個(gè) Update 都成功重號(hào)就發(fā)生了。我見過某個(gè)版本試圖用「程序里加鎖變量」來解決在單機(jī)進(jìn)程里定義一個(gè)靜態(tài)變量窗口端先搶到這個(gè)變量才能查號(hào)。這在單機(jī)演示時(shí)沒問題但排隊(duì)機(jī)是局域網(wǎng)多終端架構(gòu)取號(hào)機(jī)、多個(gè)窗口工控機(jī)連同一個(gè)數(shù)據(jù)庫進(jìn)程內(nèi)的鎖根本鎖不住其他機(jī)器的請(qǐng)求。所以這套源碼把鎖挪到了數(shù)據(jù)庫層用存儲(chǔ)過程解決方向是對(duì)的。4.2 用 UPDLOCK READPAST 實(shí)現(xiàn)原子取號(hào)這套源碼里的取號(hào)存儲(chǔ)過程是核心結(jié)構(gòu)大致如下CREATE PROCEDURE dbo.usp_CallNext WinId INT, -- 發(fā)起叫號(hào)的窗口ID BizTypeId INT -- 該窗口當(dāng)前受理的業(yè)務(wù)類型 AS BEGIN SET NOCOUNT ON; DECLARE TicketNo NVARCHAR(16); DECLARE FlowId BIGINT; BEGIN TRAN; -- 帶 UPDLOCK 鎖定掃描到的行帶 READPAST 跳過已被其他事務(wù)鎖住的行 SELECT TOP 1 FlowId FlowId, TicketNo TicketNo FROM dbo.t_TicketFlow WITH (UPDLOCK, READPAST) WHERE BizTypeId BizTypeId AND StatusId 1 AND WinId IS NULL ORDER BY CreateTime ASC, FlowId ASC; IF FlowId IS NULL BEGIN ROLLBACK; RETURN -1; -- 隊(duì)列為空 END; UPDATE dbo.t_TicketFlow SET StatusId 2, WinId WinId, CallTime GETDATE(), CallCount CallCount 1 WHERE FlowId FlowId; COMMIT; SELECT TicketNo AS TicketNo; END;這段邏輯的關(guān)鍵在WITH (UPDLOCK, READPAST)兩個(gè)提示的組合。UPDLOCK讓查詢?cè)谧x到行的時(shí)候就對(duì)該行加更新鎖后續(xù)其他事務(wù)再來讀同一行會(huì)被阻塞READPAST則保證當(dāng)前事務(wù)跳過已經(jīng)被別人鎖住的行不會(huì)傻等。兩者配合的效果是窗口 A 先執(zhí)行鎖住 A0005 并改成已叫窗口 B 同時(shí)執(zhí)行讀的時(shí)候直接跳過 A0005拿到下一條 A0006。這就是「既不重號(hào)、又不互相阻塞」的數(shù)據(jù)庫層實(shí)現(xiàn)。如果是 MySQL 8 環(huán)境等價(jià)寫法是SELECT ... FOR UPDATE SKIP LOCKEDPostgreSQL 也支持SKIP LOCKED。SQL Server 這套 Hint 語法在老項(xiàng)目里最常見所以排障時(shí)遇到同類源碼先找有沒有這兩個(gè)關(guān)鍵詞。4.3 窗口端調(diào)用與廣播解耦存儲(chǔ)過程只負(fù)責(zé)「把號(hào)碼從隊(duì)列里取出來并更新狀態(tài)」窗口端拿到號(hào)碼之后還要推送給 LED 屏幕和語音盒子。這里有一個(gè)重要的邊界數(shù)據(jù)庫狀態(tài)更新是主事務(wù)推送屏幕是附屬動(dòng)作附屬動(dòng)作失敗不能回滾主事務(wù)。// 窗口端“叫下一個(gè)”按鈕的完整處理 private void btnCallNext_Click(object sender, EventArgs e) { string ticketNo; // 第一步調(diào)存儲(chǔ)過程原子取號(hào) using (var conn new SqlConnection(CONN_STR)) using (var cmd new SqlCommand(dbo.usp_CallNext, conn)) { cmd.CommandType CommandType.StoredProcedure; cmd.Parameters.AddWithValue(WinId, winId); cmd.Parameters.AddWithValue(BizTypeId, bizTypeId); conn.Open(); // 隊(duì)列為空時(shí)存儲(chǔ)過程返回 -1這里表現(xiàn)為取不到值 ticketNo (string)cmd.ExecuteScalar(); } if (string.IsNullOrEmpty(ticketNo)) { MessageBox.Show(當(dāng)前隊(duì)列為空請(qǐng)先取號(hào), 提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; } // 第二步廣播。推送失敗不撤銷叫號(hào)只記錄日志 try { DisplayProxy.ShowNow(ticketNo, winName); VoiceProxy.Speak($請(qǐng){ticketNo}號(hào)到{winName}窗口辦理); } catch (Exception ex) { Log.Error(廣播失敗但號(hào)碼已生效請(qǐng)人工喊號(hào), ex); } }winId和bizTypeId是窗口端登錄后從配置表讀取的參數(shù)。廣播失敗時(shí)的處理是很多項(xiàng)目忽略的如果推送成功后 LED 屏幕斷電客戶看不到號(hào)碼窗口人員只能人工喊號(hào)此時(shí)如果代碼把數(shù)據(jù)庫狀態(tài)回滾成待叫那其他窗口就可能把這個(gè)號(hào)再叫一次徹底亂套。所以廣播失敗的正確做法是記日志、提示窗口人員、但不回滾。調(diào)度策略上這套代碼用的是「窗口主動(dòng)搶占」模式窗口空閑時(shí)點(diǎn)按鈕去隊(duì)列里搶最老的號(hào)。另一種模式是「系統(tǒng)自動(dòng)派號(hào)」取號(hào)時(shí)直接分配指定窗口客戶憑票去對(duì)應(yīng)窗口適合流水線式作業(yè)但銀行政務(wù)類場景用戶體驗(yàn)差客戶不知道被分到哪個(gè)窗口實(shí)際項(xiàng)目里很少用。提示如果某天線上出現(xiàn)了重號(hào)第一件事是查數(shù)據(jù)庫日志里這兩個(gè) Update 的執(zhí)行順序和事務(wù)隔離級(jí)別而不是先改窗口端代碼。絕大多數(shù)重號(hào)問題根源在數(shù)據(jù)庫層界面端代碼改一百遍也沒用。5. 排隊(duì)機(jī)避坑指南五個(gè)真實(shí)翻車現(xiàn)場與修復(fù)方法這套源碼整體邏輯是完整的但實(shí)際部署中坑點(diǎn)不少。下面五條都是我見過或經(jīng)歷過的典型問題按「現(xiàn)象 → 原因 → 解決」整理出來照著排查能省半天時(shí)間。5.1 兩個(gè)窗口同時(shí)叫出同一個(gè)號(hào)現(xiàn)象早高峰兩個(gè)窗口幾乎同時(shí)點(diǎn)叫號(hào)LED 屏和語音同時(shí)播同一個(gè)號(hào)碼客戶不知道去哪個(gè)窗口窗口人員互相推諉。原因這不是數(shù)據(jù)庫并發(fā)問題而是流程設(shè)計(jì)問題。舊版本窗口端做了「預(yù)取號(hào)」程序先把待叫號(hào)查出來顯示在界面上等窗口人員確認(rèn)后再更新狀態(tài)。預(yù)取號(hào)和確認(rèn)之間的空窗期另一個(gè)窗口也能查到同一個(gè)號(hào)。窗口人員手速越快重號(hào)概率越高。解決嚴(yán)格走usp_CallNext存儲(chǔ)過程把查號(hào)和鎖號(hào)合并為一次數(shù)據(jù)庫操作。如果業(yè)務(wù)上必須保留確認(rèn)彈窗就把彈窗放在「調(diào)存儲(chǔ)過程之后」而不是之前先落庫拿到號(hào)碼彈窗只是展示結(jié)果不是確認(rèn)項(xiàng)。這一條改動(dòng)就能根治重號(hào)。5.2 客戶還沒走到窗口號(hào)碼就變成過號(hào)了現(xiàn)象老年客戶從取號(hào)機(jī)拿完號(hào)走到窗口路上用了兩分鐘到窗口時(shí)系統(tǒng)已經(jīng)顯示「已過號(hào)」窗口人員重新叫號(hào)時(shí)客戶一臉委屈現(xiàn)場吵起來。原因過號(hào)等待時(shí)間寫死在代碼里默認(rèn)值只有 30 秒。代碼里用的是Thread.Sleep(30000)這類硬編碼部署時(shí)沒人去改。大廳越大、窗口越遠(yuǎn)、客戶群體年齡越大這個(gè)值就越不合理。解決把過號(hào)等待間隔做成配置表參數(shù)過號(hào)判定邏輯統(tǒng)一讀配置。配置表就兩列一列鍵一列值INSERT INTO dbo.t_Config ([Key], [Value]) VALUES (WaitTimeoutSec, 180);窗口端判定邏輯改成SELECT Value FROM dbo.t_Config WHERE [Key] WaitTimeoutSec取不到值時(shí)默認(rèn) 120 秒。另外窗口端要保留「撤銷過號(hào)」按鈕客戶到了就點(diǎn)一下把狀態(tài)從 3 拉回 2同時(shí)記錄一條操作日志避免被投訴時(shí)說不清楚。5.3 LED 屏幕顯示亂碼現(xiàn)象號(hào)碼數(shù)字正常漢字和字母變成「口」或菱形某些批次屏幕正常、某些批次亂碼。原因LED 控制器和程序約定的編碼不一致。常見組合是控制卡默認(rèn) GB2312程序按 UTF-8 拼報(bào)文或者反過來。同類源碼復(fù)制到不同網(wǎng)點(diǎn)顯示屏廠家不一樣編碼約定就不一樣看起來像系統(tǒng)「時(shí)好時(shí)壞」其實(shí)是換屏的時(shí)候沒同步改編碼。解決把編碼參數(shù)做成每個(gè)網(wǎng)點(diǎn)的配置項(xiàng)不要在代碼里寫死。調(diào)試時(shí)直接用串口工具抓報(bào)文看 Hex 字節(jié)流對(duì)照 GB2312 或 UTF-8 的碼表一看就知道哪一端錯(cuò)了。這個(gè)坑最好在部署階段就統(tǒng)一確認(rèn)等上線后再改要同時(shí)改程序和屏參來回折騰。5.4 日?qǐng)?bào)表統(tǒng)計(jì)數(shù)量比實(shí)際少了 20%現(xiàn)象晚上打印日?qǐng)?bào)表系統(tǒng)統(tǒng)計(jì)當(dāng)天辦理 80 筆營業(yè)廳手寫臺(tái)賬記了 90 筆差了 10 筆。查流水表發(fā)現(xiàn)有一部分記錄狀態(tài)停在了「已叫」。原因窗口人員點(diǎn)「結(jié)單」按鈕時(shí)界面上的客戶記錄消失了但數(shù)據(jù)庫狀態(tài)沒有更新。舊代碼里「開始辦理」只改了前端界面狀態(tài)對(duì)應(yīng)數(shù)據(jù)庫根本沒有任何更新操作真正把狀態(tài)改成完成的那段代碼只存在于另一個(gè)沒人調(diào)用的模塊里。報(bào)表按 StatusId5 統(tǒng)計(jì)自然偏少。解決強(qiáng)制約定結(jié)單必須走統(tǒng)一的更新語句把StatusId從 2 改成 5 并寫入FinishTime。排查時(shí)用一個(gè)分組查詢看狀態(tài)分布哪里異常一眼可見SELECT StatusId, COUNT(*) AS Cnt FROM dbo.t_TicketFlow WHERE CONVERT(DATE, CreateTime) CONVERT(DATE, GETDATE()) GROUP BY StatusId;正常一天跑下來狀態(tài) 5完成應(yīng)該占絕大多數(shù)狀態(tài) 1 和狀態(tài) 2 是營業(yè)結(jié)束時(shí)還殘留在隊(duì)列里的少量號(hào)碼狀態(tài) 3 是過號(hào)。如果狀態(tài) 2 占比異常高說明「結(jié)單不落庫」的問題還在。5.5 取號(hào)機(jī)間歇性卡死重啟后恢復(fù)現(xiàn)象客戶按取號(hào)后紙質(zhì)票打印不出來或者觸摸屏轉(zhuǎn)圈十幾秒重啟軟件恢復(fù)過半天又犯。原因打印控件同步調(diào)用打印機(jī)打印機(jī)走網(wǎng)絡(luò)共享時(shí)響應(yīng)慢超時(shí)期間取號(hào)事務(wù)一致沒提交數(shù)據(jù)庫連接被占滿后面所有取號(hào)請(qǐng)求都在等連接表現(xiàn)為整個(gè)取號(hào)端卡死。這是典型的「外部設(shè)備拖垮主流程」。解決取號(hào)寫庫和打印徹底解耦。按鈕點(diǎn)擊后先執(zhí)行取號(hào)存儲(chǔ)過程拿到號(hào)碼立刻提示「取號(hào)成功」打印丟到后臺(tái)線程隊(duì)列慢慢處理失敗只記日志不彈窗。同時(shí)給所有SqlConnection設(shè)置短連接超時(shí)比如Connect Timeout 3避免單臺(tái)設(shè)備異常拖垮整個(gè)系統(tǒng)。6. 部署后怎么驗(yàn)證造數(shù)、并發(fā)測試與參數(shù)配置化拿到這套源碼不要急著改業(yè)務(wù)流程先做三輪驗(yàn)證。第一輪是造數(shù)據(jù)驗(yàn)證統(tǒng)計(jì)邏輯。寫一段腳本往流水表灌一天的量比如 3000 條記錄時(shí)間從早上 9 點(diǎn)均勻分布到下午 5 點(diǎn)狀態(tài)隨機(jī)落在 1、2、3、5然后跑前面那兩句統(tǒng)計(jì) SQL確認(rèn)報(bào)表口徑和你預(yù)期一致。這個(gè)步驟能提前發(fā)現(xiàn)狀態(tài)位含義和報(bào)表邏輯的錯(cuò)位。第二輪是并發(fā)驗(yàn)證。打開五個(gè)數(shù)據(jù)庫查詢窗口模擬五個(gè)窗口同時(shí)執(zhí)行usp_CallNext連續(xù)跑幾十次觀察返回的號(hào)碼有沒有重復(fù)有沒有返回空值。正常情況每次返回的號(hào)碼都應(yīng)該嚴(yán)格遞增且不重復(fù)。如果出現(xiàn)重復(fù)回到第 4 章的鎖機(jī)制排查如果出現(xiàn)大量空值說明鎖粒度太粗事務(wù)互相阻塞嚴(yán)重要檢查是不是漏了READPAST。第三輪是把行為參數(shù)全部配置化。WaitTimeoutSec過號(hào)等待秒數(shù)、MaxCallCount號(hào)碼最大重呼次數(shù)、DailyResetTime每日序號(hào)歸零時(shí)間這些值全部挪到t_Config表里改參數(shù)不用重新編譯程序。我之前接手一個(gè)項(xiàng)目對(duì)方說系統(tǒng)「時(shí)好時(shí)壞很玄學(xué)」排查到最后發(fā)現(xiàn)是某臺(tái)窗口電腦的系統(tǒng)時(shí)間快了八分鐘叫號(hào)記錄和過號(hào)判斷全部錯(cuò)位。從那以后我拿到任何排隊(duì)機(jī)源碼第一件事就是檢查所有終端的時(shí)間同步再做并發(fā)壓測最后才動(dòng)業(yè)務(wù)邏輯。希望你拿到的這套代碼能少踩幾個(gè)類似的坑祝順利。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
最近2019中文字幕国语免费版| 无码 黑人一区二区三区| 午夜欧美女人操逼| 人人搡人人肉久久精品| 免费一级性爱久久| 啊啊啊啊啊好大好舒服想要| 久久国产在线一区二区| 精品视频久久久久九九九九9999| 在线洲亚线| 国产成人精品日本视频| 91 亚欧| xxxx网站亚洲精品| 91 亚洲情侣偷拍 久久| 亚洲欧美日韩二区视频| 欧洲精品人妻| 操逼视频免费日韩无码| 97在线视频免费看| 色婷婷aV一区二区三区麻豆综合| 久久精品人妻一区| 红杏大香蕉| 久九九九九九九热| 精品-91人妻子系列| 1二区9| 99视频这有这里有精品| 伊蕉97蜜桃97狠狠综合干 | 后X久久| 东京男人天堂| 欧美永久激情一区二区| 国产AV色黄看到爽| 国内精品久9| 欧美熟女操屄| 久久久久少妇| 91爱看| 伊人影院综合是一个与深夜成人在线| 久久久9 9 9精品| 国产AV高清AV无码| 中文一区二区三区影院| 综合色拍| 性色avv| 人人操人人摸人人看人人插| 97中文综合| 插入综合网| 白丝被操91| 亚洲色入欧美| 伊人玖玖网| 亚洲九月丁香| 亚洲精品三区在线观看| 骚妻少妇精品性色无码四色A V| 色婷婷综合视频| 蜜臀久久99精品久久久久久无删减| 亚欧美天堂在线| 韩国一级AAA| 欧美 色 亚洲| 中国的操老妇女| 日本色色的视频| 啊啊啊啊啊在线| 久久久久久中文版| 禁片 高清 在线观看视频网站| 日本成人免费一区二区三区| 人人妻人人色一区二区三区| 91 国产丝袜在线放观看| 日韩欧美综合激情| 亚洲精品97| 超碰到97情色| 亚洲男人的天堂一区二区| 一区二区三区 日韩欧美| 国产白丝AV| 香蕉色网| 久草综合视频| 97超级久久强资源| 欧洲熟妇xxXx欧美老妇裸体| 亚欧成人中文字幕一区| 女性喷水高潮在线观看| 国产精品69久久久久孕妇欧美| 日韩国语字幕| 免费综合亚洲中文| 亚洲色图欧美视频| 人人干黄色| 色欧洲| 欧美中字不卡| 91网站18在线| 天操天操夜操夜月操月年年操 | 亚洲蜜臀精品视频久久| 91爱做| 超碰爽人妻熟女Av| 国产精品交换一区二区| 五月综合婷婷久久网站| 99国产在线 精品 视频| 久久久一区二区三区三州| 亚洲综合色图欧美| 91粉芽高清在线一区二区| 美女裸体无遮挡永久免费观看网站| 日韩欧亚中文在线| 欧美性,色九九| 大香蕉AV丝袜| 丁香六月东京热| 欧美成人黄网色网站| 肏逼视频日本| 九九九九热| 一区二区无码视频| 久久99久久99精品天美传媒棢·纸:.| 久久久久久久久久久久久女过产乱-少妇高潮一区二区三区喷水-成人AV | 久操视频资源站公开| 国产一区二区a毛片| 国产无码久久高清| 久久久亚洲Av| 亚洲欧综合另类无码一区| 国产av激情无码久久天堂| 超碰色综合| 91欧洲国产成人久久精品网站| 蜜桃天美传媒AV一区二区三区| 呻吟 欧美 日本 中出| 欧美日韩精品久久久久东北老熟妇| 夜草欧美| 日本精品九九九| 久久久精品九| 久久日本熟妇熟色一区| 亲子敌伦对白在线播放| 日韩中文字幕视频| 中文字幕精品日韩中文字幕| 国产成人无码高清| 大奶啊啊好爽| wwe 天天干.com| 日韩情色AV| 999 久久久| 日韩亚洲97| 热热色AV| 亚洲影院无码在线| 温婉少妇玩3p| 屌逼麻豆| 九七毛片九九毛片| 欧美中文字幕日韩在线| 中文字幕,人妻,日韩| 久久黄色视频一区二区三区| 亚洲一欧洲中文字幕在线| 日本熟妇人妻中出视频| 91天天日| 久久久偷拍| 激情五月天中文字幕色| 一级黄色性爱A级片| 强奸a片网| 亚州伊人色综台| 亚洲AV不卡在线观看尤物| 色偷偷超碰亚洲| 啊啊啊好大好深| 牛牛AV人人夜夜澡人人爽| 国产三级资源在线观看| 亚洲成人在线播放| 伊人aaa| 神马午夜久久| 日本免费专区| 麻豆 欧美 日韩| 日韩美女,国产传媒,视频一区| 久久久久久中文| 五月丁香黄色网| 五月婷婷综合网| 60秒试看最爽10分钟网站| 人人操人人精品影片| 青青草国产欧美非洲黑人| 亚洲国产精品无码AV在线| 人妻久久久久久久久久久久久久久| 成人日韩中文字幕| 青青青青操国内视频在线| 999综合色| 婷婷五月天伊人| 啊啊啊啊啊操我视频| 免费A片三p视频| 一区二区免费电影久久| 蜜臀久久99精品久久综合| 啊啊啊啊操死我了| 国产h小视频在线观看免费| 免费看A片毛毛片在线播| 中文字幕片| 91狠狠狠| 五月天黄色激情视频| 九月AV| 欧美激情 亚洲色图| 日韩免费福利在线观看| 欧美日韩国产传媒在线精品| 久九九九九九九九热| 久久黄色视频一区二区三区 | 亚洲欧美自拍偷拍| 麻豆久久久久久久久丝袜| 日比av无码| 亚洲成人美女无吗| 久久妇| 亚洲第一免费视频| 玖玖综合色| 大色综合| 台湾肥佬网一区二区三区| 青草精品视频-日本久久久久网站| 久久久精品国产亚洲AV无码| 春色91| 99人人干| 四虎AV在线播放| 99久久网站| 亚州精品人妻一二三区| 九九av| 日韩精品-原创伙伴| 免费一级视频特黄色大片| 中精品一区二区三区| 久久国产乱子伦精品免费女人| 九九天堂| 九九九久久久W精品| 亚洲aV性爱| 狠狠2050在线观看| 色色香蕉| 国产精品97超碰| 免费a在线播放v| 亚洲 欧美 日本 国内 首页| 五月婷婷影院| 日韩啊V| 一二三啪啪专区| 伊人国产成人av网站| 亚洲精品久久久久久久久豆丁网| 无码人妻精品酒店| 天天舔天天日天天射| 色情乱伦AV| 后入综合久久| 蜜臀久久在线视频| 一级啊性爱在线视频| 91男人综合| 久久九九网| 欧美日韩在线小说 | 九九九久久久久| 老女人91| 国产和美国毛片| 国产熟女完整版中字| 青青欧美| 激情五月激情综合网| 欧美日韩色图片| 操屄日韩| 亚洲欧美清纯| 大香蕉免| 大香蕉丝袜一级片| 亚洲国产另类在线中文| 亚洲欧美91√| 东京太热久久久| 国产成年女人免费视频播放a| 中文字幕、久久精品国产2020、久久综合久久自在自线精品自、亚洲 | 亚洲97网站| 91在线页| 欧美强奸乱| 伊人操| 欧美色图人妻| 日韩美脚一区二区网站| 十八岁啪啪视频免费看| 久操免费观看| 久久久久久少妇| 中文字幕五区| 亚洲精品啪视频| 天久久久噜噜噜久久国产精品爽爽 | 亚洲精品无码成人久久久99| 少妇综合| 亚洲色婷婷久久91| 亚一综合久久久久久久久久| 密臀国产在线| 性交一区二区在线播放| 蜜色网色哟哟| 视频分类 国内精品| 香蕉综合网| 欧美人妻久久精品二区三区 | 摸奶性爱视频网站在线免费播放| 97国产精选| 黄色成品网站| 69精品人人人人| 亚洲欧洲综合成人av一区| 一级AAA片一区二区三区| 久噜噜| 99激情| 蜜桃av综合网发布| 福利操逼| 手机在线播放国产福利| 黄色AV免费| 亚洲自拍小说| 超碰久超碰久| 亚州欧美在线| 九九九偷拍| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 日韩乱伦影音先锋| 国产精品久久久久久久久久梁医生| JuliaAnnXXX888| 欧美最大综合网| 91网站视频在线观看| 伊人久久亚洲中文字幕| 国产精品天美传媒| 久久成年精品| 亚洲一区二区三区麻豆传媒| 欧美人妻色| 欧洲中文字幕| 免费人人搞97| 天天综合欧美综合| 久久综合女优| 亚州日韩97| 美腿丝袜高跟网免费视频免费视频| av操操不卡| 亚洲国产综合久久天堂| 亚洲一二三精品久久网| 大香蕉欧美伊| 男人天堂日日夜夜| ai欧美亚洲小说| 操逼内射干逼白丝91| 国产精品久久久久久夜夜夜| 大香蕉综合久久| 久久久久久久久九九久孕交| 久久久禁| 综合网亚洲1| 天天干夜夜操一区二区| 精品熟女呻吟久久91| 国产熟妇 码视频户外直播| 日韩成人无码| 色操逼网| 亚洲欧美国产其他二区| 农村妇女一级二级三级视频| 老熟女91av| 影音综合网| 久久99手机免费视频| 秋霞鲁丝午夜无码一区二区三| 欧美A√综合网 | 亚洲国产精品无码AV久久| 97在线免费看视频| 人妻精品免费一二三区| 亚洲最大成人a毛毛片| 美女国产一区二区久久| 超91综合网| 亚洲乱色视频一区、二区在线| 日日AV加勒比| 夜夜国自区| 97天堂| 久久性爱精品一区| 开心五月激情网| 天天操av懂色| 夜夜精品视频一区二区| 久久久久久亚洲Av无码精| 久久久久亚洲AV无码专区少妇| 欧美日韩香蕉| 伊人久久国产免费观看视频| 91美女国产在线| 97欧美在线| 性开放中文AV高清无码免费看| 中文字幕成人| 欧美97视频| 九热久| 国产操逼逼网| 九一综合精品视品av| 日韩八十路老熟女| 啪啪啪东京| 色情五月婷婷| 97一区二区三区视频| 熟妇人妻精品一区二区| 日韩欧美成人性爱在线| 95精品在线| 亚洲AV色图一区| 国产呦精品系列在线观看| 久草免费福利在线播放| 69精品少妇一区二区三区蜜桃| 一本一道久久综合久久| 啊啊啊好舒服视频在线观看| 国产性久久久| 日本孕妇一区二区视频操逼免费看 | 97人亚洲综合字幕| 91蜜臀人妻中文字幕在线| 免费A V在线| 人人澡人人爽人人精品| 91色欧美| 二色av| 成人天天爽| 日韩熟女无码| 亚洲情色五月天 | 9997se| 久久久久久久久久久免费精品| 天天爽天天| 果冻传媒A片一二三区| AV麻豆免费一区| 亚 欧 美 综合| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 91人妻PORNY九色大屁股| 牛牛久久国产精品视频一二三| 久久狠狠色噜噜狠狠狠狠97| 中文字幕 码 自拍 视频 区| 欧美日韩中文字幕不卡| 欧美黑人与女人91~| 蜜臀中文字幕| 97人肏| 麻豆av一区二区| 欧亚免费视频| 91老妇女| 综合一区中亚洲国产成人综合精品| 超碰538| 精品亚洲一区在线观看| 91中文精品日韩欧美在线| 国产综合日韩伦理| 中文字幕视频一区视频二区| 欧美精品二区视频在线| 91国产大片| 飘花国产午夜精品不卡| baiduhicn.com。| 国产A v无码专区| 精品中文日韩字幕视频| 3p国产色噜噜一区| 久久久啊啊啊| av天天在线观看| 热99这里有精品综合久久| 青青草视频久久| 又粗又长又大国产不卡| 歐美一級亂黃99在綫精品| 免费AV中文网在线观看| 97碰碰日本乱偷人妻中文的| 国内精品伊人久久久久影院会| 欧美色图片色哟哟| 精品一区96| AV天堂国产| 蜜桃丰满熟妇av无码区不卡| 9久久精品| 一级二级在线观看| 美女丝袜激情小说| 青青草中文-久久青草精品一区二区三| 蜜臀网 一区| 狼人综合婷婷激情四射| 国产野战露脸在线播放| 九久久精| 日本A级视频| 日韩精品黄片免费观看| 蜜臀久久久99久久久久| 欧美性后入| 岛国片国产成人亚洲播放| 91熟女视频网| 日韩久久.一级黄色片| 日韩国产在线观看av| 亚洲精品久久久久久| 色哟哟的毛片| a一区二区三区乱码在线| 99热99re6国产在线播放| 激情五月天婷婷| 欧美日韩*字幕一区| 在线五区| 女人一区| 婷婷五月天丁香| 亚洲天堂热| 欧美一二三区四五区| 国产精品麻豆视频网站| 91老司机在线| 欧美精品欧美精品系列| 国产性感骚丝袜在线| 欧美v亚洲v日韩v最新在线二区| 啊啊嗯嗯好爽| 超碰久草| 男人久久精品| 99爱久久视频频| 91啪啪视频| 国产精品人妻熟女aⅴ| 人人操人人肉久久精品| 99蜜月精品久久| 亚洲欧美另类少妇精品| 天天干天天干天天干| 中文字幕亚洲热播人妻| 狠狠色噜噜狠狠狠狠2018| 91观看 国产白丝| 亚洲精品97中文字幕| 亚洲。日韩。欧美| 色爱综合网| 国产AV高清AV无码| 曰韩人妻中文字幕在线| 日韩AV无码中文一区二区| 精品美女久久一二三| 啊啊啊好爽快点啊啊啊嗯嗯| 巨爆乳肉感一区二区三区竹菊影视| 日韩黄片影院| 日韩电影在线观看网址| 丝袜大香蕉| 小电影欧美91| 麻豆区99999| 成人在线日韩| 柠檬AV导航| 操逼视频免费日韩无码| jk白丝没脱就开始啪啪| 91丨九色丨国产丨人妻在线 | www被窝色com| 搞中出视频在线观看| 美女97超碰| 久久久久久久久久久久久9999| 九九综合| 亚洲综合色男人网| 欧美精品四区| 亚洲 欧美 中文 日韩超碰| 人人色97| 夜夜嗨AV蜜臀av| 超碰调教97| 欧美日韩国第一区| 久久99手机免费视频| 又黄又粗又硬又长又大| 天天看片麻豆| 一直超碰| 99视频自拍区| 夜色91| 狠狠操狠狠操操| 97超碰人人操人人操| 2021国产成人精品久久| 黄片免费视频2019| 色综九九九一区| 日本久久综合| 91狠狠狠| 黑人娇小av在线播放| 国产强奸无码乱伦| ji熟女.com| 国产熟女完整版中字| 日本午夜精品理论片A级APP发布| 婷婷五月天成人| 大香蕉亚洲中文| 久久AV无码1区2区3区| 人妻黑丝袜电影| 青青草影视蜜久久| 黑人猛交| 色yeye成人免费视频| 亚洲乱码尤物193YW| 亚洲91射| 国产女人视频三四五区| 亚洲精品成人动漫在线| 一起草精品人妻| 日本三级韩国三级99| 96精品久久久久中文字幕| 蜜臀久久久国产| 9精品久久久久| 男人午夜天堂| 333kkkk·亚洲com久久| 欧美色棕合| 久久久久久中文版| 东京热毛片调教| 富女玩鸭子一级毛片| 日韩亚洲中文字幕在线| 丁香五月天激情综合| 香蕉久久精品| 亚洲黄色电影| 精品丝袜无码一区二区三APP| 91干熟女| n1038 一二三区| 欧美色图片色哟哟| 亚洲无码成人精品| 激情99| A一级色女| 老司机福利青青草| 日本在线激情一区二区三区 | 国产精品视频自拍在线| 六月丁香网| daxiangjiao你懂的| 国产强奸乱伦第1页| 午夜黄色免费在线观看| 天天看特黄的免费网站| 超碰97中文| 日韩精品永久在线观看| 伊人丝袜美腿高跟在线观看高清| 亚洲在线a| 色牛牛AV| 激情婷婷丁香| 亚洲精品一二区| 青青11操操操操操操操操| 尤物AV免费网站| 福利操逼| 97在线观视频免费观看| 日韩欧洲操屄视频| 韩日男人的天堂| 亚洲熟女综合一区二区| 色婷网| av草草在线电影| 国产精品成人久久一区二区三区| 偷窥自拍亚洲色图| 9Ⅰ老熟女| 五月激情影院| 亚洲欧美97| 大香蕉伊人久久| 色天使AV天堂| 亚洲一本色道中文无码aV天美| 熟妇艹鸡八| 中文字幕日韩专区精品系列| 不卡二三区人妻少妇| 国产精品一二三在线看| 91无码人妻| 欧亚乱色熟女一区二区| 91无摭挡| 亚欧高清v| 91热色| 综合一区中亚洲国产成人综合精品| 国产精品熟妇一区二区三| 人妻中文字幕精品无码| 久久大陆| 蜜乳性色无码专日粉嫩骚逼AV| 国产精品乱码久久久、久久| 亚州AV无码国产精品| 九九九九九九九九九九九蜜桃| 无码操逼网| 久久视频少妇美女| 国产精品久久久鸭无码的功能| 另类专区加勒比| 偷窥自拍A片| 黑人在线91| 日本曲间由美性生活片| 精品国产Av无码久久久亚洲| 求求你操操我| 大色综合网| 97操97干| 伊人综合色网| 啊啊啊啊啊,啊啊啊啊好舒服,操我舒服啊啊啊 | 亚州免费啪啪视频| 色999五月色| 好吊色一区| 大香蕉综合网| 欧美 亚洲 制服 精品| 91在线丝袜| 你懂得91| 伊人91| 97视频免费播放| 午夜视频好爽啊| 在线A日本| 亚洲一本色码中文字幕| 色综合潮| 国产精品熟女九色九色蜜臀| 色情婷婷久久五月天| 日本福利二区视频| 九热中文字幕| 午夜欧美神马久久久久| 国产精品自在自拍视频| 91性片| 九久9热| 久久黄片国产一区二区| 国产欧洲精品亚洲午夜拍精品| 国内精品伊人久久久久影院会| 欧美亚洲激情| 丰满丝袜少妇AV| 这里只有精品久久| 免费一级特黄特色大片在线观看看| 日韩欧美久久婷婷网站| 尤物av网站| 综合欧美日本三级| 日本1区2区不卡视频| 美女t无毒不卡不卡| 亚洲精品国产AV天美传媒| 人妻精品视频一区二区| 日本羞羞的视频在线播放| 欧美图片校园春色| 99九九久久| 99成人| 99热在线观看| 大香蕉一区二区在线观看.| 亚洲综合网91| 91劲爆| 欧美日韩免费专区在线| 国产精品色| 丰满高潮18xxxx| 超碰97人妻免费在线| 麻豆色约约| 亚洲色图欧美另类在线| 亚洲人精品久久久喷水| 激情五月丁香五月| 91天堂色男人的天堂| 久久精品国产AV一区二区三区| 蜜臀久久99精品久久久久久| 久久久久深夜无码| 97超碰人操| 丝袜天堂| 国产传媒日本欧美专区| 嗯嗯嗯啊啊啊在线免费观看| 国产超碰在线| 婷婷六月色开| 日韩av在线播放不卡| 国产精品无码av在线| 欧美日韩性爱电影在线| 在线αⅴ| 91精品人| 97干97色| 亚洲综合97| 色香欲综合| 久热这里只有精品9| 亚洲综合草草| 天天操天天干美女网址导航| 四虎影视 亚洲无码| 性九九九九九九| 亚洲 综合 第一页| 精国久久一区二区三区98| 久久一区,青青青青草视频在线播放| 又大又白奶子| 91久久精品国产| 美女人妻色网站| 青娱乐亚洲热| 中文字幕片| 少妇三P| 久久九精品| 精品无码一区二区人妻久久蜜桃| 亚洲 欧美 综合 91| 精品视频久久区| 熟女露脸激情自拍视频| avav青青草久久夜| 草久在线| dy888午夜老子影视达达兔| 亚洲色图91| se吧提供91精品国产91久久久久久| 蜜乳中文字幕a在线| 亚洲综合成人网| 7777欧美成是人在线观看| 超碰人人超在线观看| 国产激情综合| 小草三级久久观看| 精品97精品97| 日韩色图 一区二区| 亚洲成人AB| 99中文字幕| 乱伦日本中文自拍| 免费精品人妻一区二区三| 欧美一级做a爰片免费视频| 五月天婷婷色色| 九九热男人天堂| 人人搡人人肉久久精品| 九九九九九九九九九九九蜜桃| 舔人妻中文免费视频| 久9精品| 久久伊人亚洲AV无码网站| xxx0国产在线播放| 97人人草| 欧美一区二区日韩传媒搭讪精品| 久污| 人人操人人色网| 国产精品一区午夜福利| 曰韩无码777| 日韩欧美成人大香蕉| 欧美91精彩| 亚洲精品欧洲色| 日韩黄色av中文字幕| 日本在线播放不卡一区| 欧美亚洲激情小说| 91国产丝袜美女| 亚洲欧美综合| 亚洲日韩成人性爱视频| 日韩伦理久 久久 清纯| 欧美少妇色图| 人人妻人人爽一区二区三区| 日本性感人妻91| 澳门特级毛片免费观看| 67194无码不卡| 一级免费精品| 免费观看网黄| 五月丁香影视| 天天拍天| 亚洲在线网站| www.丁香五月| 91路www| 亚洲天天操| 国岛片视频| 好看的91视频| 亚洲欧美日韩激情不卡| 欧亚性爱视频免费看| 91国产大片| 无码人妻一区二区三区免费九色| 18禁的网站在线| 成人女人国产| 97免费视频在线观看| 91性高潮久久久久久久久| 日韩久久艹| 26uuu最新| 五月丁香六月激情| 嗯嗯嗯啊啊在线观看| 中文日本免费高清| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 91色综| 欧美在线第五页| 色五天伊人| 中文在线久久字幕| 国产一区二区三区高清视频| 亚洲激情综合| 日日AAvv| 国产精品久久久久久久久AV大片| 日韩不卡网操逼中文字幕日韩| 无码一区免费在线不卡| 欧美大香蕉卡久久| 超碰91在线| 欧美黑人XXXⅩ高潮交| 加勒比海人人操超碰在线| 极品色www影院| 少妇激情AV| 久久肏大逼| 97超级色碰碰| 在线观看av区| 久草电影网| 亚洲欧美激情在线视频| 中文字幕国产| 99自拍视频在线观看| 后入合集| 五月丁香影视| 欧美亚洲情色| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 亚洲欧美综合区自拍另类 | 天天干天天日天天射黄色| 久久大| yazhousetuoumei| 一级AV性爱| 日本九九久久99| 日本国产欧美高清在线| 中文字幕欧美精品亚洲日韩蜜臀| 中文字幕一区日韩精| 99热在线只有精品| 亚洲欧美精品一区天堂久久| 女性91网站| 成人老鸭窝人人在线视频| 精品国产91av一区二区三区 | 韩国女主播青草福利视频| 日本国产欧美一区三区二区| 亚洲 欧美 小说| 久久亚洲AV成人精品无码| 亚洲美腿丝袜香蕉影视欧美成人| 天天爽夜夜操| 日韩av性爱在线播放| 亚州 综合 色图| 久久精品国产免费观看99| 亚洲美女精品九九视频| 国产视频一区二区三区久久亚洲天堂| 日韩免费在线视频观看| 九九九九九九九九九九九蜜桃| 婷婷色五月激情| 久久精品国产亚洲AV先锋| 国产精品视频播放| 手机看片1024你懂的国产| 超碰地址久久| 蜜臀AV成人精品蜜臀| 精品亚洲国产成人AV制服丝袜| 超碰美国| h色99999| 国产欧美美女免费观看视频| 欧美精品日韩久久久九| 麻豆av一区二区| 超碰1024久久| 超碰在线成人| 日本人妻伦在线中文字幕| 国产热av| 国产有码一区| 国产综合操逼高清| 熟女激情综合网| 97资源站国产精品| 天堂麻豆天美| 久久五月综合| 爽极品影院| 日本一二区不卡| 国产精品3| 江都AV在线| 色狠狠综合| 精品欧美А∨无码黑人大荫蒂| 免费在线视频97| 丝袜翘臀后入欧美校园亚洲自拍另类小说一区中文字幕少妇诱惑 | 撸撸成人在线视频| 青青草日韩无码| 欧美日日操| 欧美亚洲激情| 天天影视综合色| 精品国产乱码久久久兰草影视| 久久精品小视频| 在线人人人人人人精品超 | 国产一国产一级毛片古装| 亚洲综合色在线| 日韩在线97| 精品视频日日夜夜| 啪啪一区| 你懂得91| 青草青草久热| 日日噜噜夜夜狠狠视频无| 黄骗免费网站| 啊啊啊慢点| 无码九九九九| 国产精品久久久久久久久久久久久久久久 | 亚洲情色婷婷五月天| 大香蕉乱伦视频网| 黄色小视频日本txt| 五月婷婷丁香六月丁香| 2024黄色视频| 91这里只有精品| 久久久久久久91| 亚洲精品熟妇1区2区3区。| 综合91网| 亚洲视频小说| 国产午夜视频| 日日夜夜青青草母狗| 暖暖精品二区三区观看| 少妇一区二区三区| 黄色一区三区| 精品中文日韩字幕视频| 欧美情色贴图| 天天看特黄的免费网站| 蜜桃在线观看一区二区三区| 日韩专区数据列表-第3230页-精品国产一区二区三区香蕉 久久99熟女人妻中文字 | 五月天丁香| 久99| 992这里有精品| 中文字幕 人妻不满 在线视频| 丁香六月啪| 九色婷婷| 五月丁香久久| 亚 欧 美 综合| 麻豆天美国美国产AV| 熟女丰满人妻一区| 91人妻人人妻| 久悠悠av| 少妇69中文| 欧美国产成人在线| 久草精品一区| 亚洲性猛| 97欧美色| 熟妇色99| 一起草三级AV电影在线观看| 亚洲网站一区二区在线| 青青青国产手线观看视频2| 9国产超碰| 亚洲 日本 国产 综合| 18禁中文字幕| 日韩成人大片一区二区| 在线性黄高清免费视频| 日本人妻伦在线中文字幕| 久艾草在线精品视频在线观看| 天天摸夜夜添无码小视频| 色网在线视频观看免费| 五月天黄色激情视频| 99天堂网| 亚洲国产剧情少妇激情| 亚洲中文字幕日产无码久久| AV色五月天| 亚洲中文字幕一区二区| 人人爱人人乐人人操| 久久无码一区二区二三区性色| 精品国产91av一区二区三区| 凸凹视频在线观看| 日韩av女优在线免费一区| 国产熟女一区二区丰满| 天天搞欧美| 中文字幕一二三| 国产成人精品必看| 亚洲AV无码乱码在线观看性色| 成人 日韩欧美一区| 久久精9| 人妻丝袜二区| 日本高清视频xxxx| 亚洲成人免费电影| 欧美色图亚洲特色| 日本在线15p| 东京热一区二区中文字幕| 嫩草影院在线观看精品 | 蜜乳av一区二区| 国产欧美一区激情交| 三上制服丝AV| 色老大| 国产亚洲日韩欧| 超碰av在线| 中文字幕人乱码中文字的预防方法| 日韩成人小视频| 日本欧美一区二区三区视频麻豆| 乱色视频中文字幕| 亚洲色图国产另类| 午夜超碰| 婷婷深爱五月| 欧美情色贴图| 探花精品 一区二区| JULIA一区二区三区在线播放| 国产一区二区三区不卡手机在线| 91天堂丝袜美腿| 欧美超碰97| 偷窥自拍亚洲色图| 精品国产乱码久久久久久日本公司| 操东北女人| 2020国产精品| 嗯,啊。舔我逼| 国产粉嫩蜜臀av一区二区三区| 欧美视频边做饭边橾| 熟女自慰久久久| 一区二区高清视频| 狠狠色综合网| 日本三级韩国三级美三级91| 午夜视频黄| 少妇99成人麻豆| 九九九久久久W精品| 激情综合二| 男人天堂综合| 欧美在线永久天堂| 久无码| 亚洲精品少妇| 激情综合五月| 日1区2区3区2020| 欧美国产伊人久久久久| 青青草色插素人| 黑人美精品 A片| 久久男人网| 超碰日韩人妻| 爱干爱射网啊啊啊| 日韩性爱一级片| 精品国产嫩穴视频| 操逼操2| 高清不卡国产| 凹凸视频在线一区二区| 日韩pv中文| 日本精品五区| 青青国产精品在线| 98久久| 四虎永久在线精品免费网址 | 高清肉丝中文无码| 国产女人和拘做爰视频| 91真人天天在线| 香蕉久久AⅤ...| 色老牛| 日韩探花精品在线视频| 久久↗↗| 操逼操操操91| 色欲久久99国产精品久久久久久| 欧洲色色| 超碰欧美| 大香蕉伊人在线成人AV在线观看 | 78操B| 91人妻人人妻| 蜜乳视频网站| 青青草啪啪网| 国产女人操逼视频| 国产久9| 日本大片日本一区二区免费高清 | AV久日| 91粉嫩萝控精品福利网站_精品影音先锋国| 久草毛片| 亚洲精品一区中文字幕乱码| 人人操,人人液| 大香蕉一人在线| 天堂中文资源在线bt| 精品在线78| 丝袜夫妻自拍| 亚洲密乳AV| 国产亚热在线久久| 玖色AV| 国产不良强奸视频免费看| 青木玲在线不卡| 亚洲操操| 狠狠操,使劲操| 中文字幕在线2| 五月开心网| 秋霞一级鲁丝片A片| 欧美玖玖爱免费玖玖| 九九无码| 成人性爱av| 中文字幕欧美精品亚洲日韩蜜臀| 欧美78p| 国产综合网站在线播放| 91亚洲网站| 嗯嗯啊啊视频一区二区三区| 这里都是精品在线观看| 视频一区二区免费在线| 色偷综合| 欧美拳交在线播放| 国产传媒操逼视频| 高清无码人妻久久久一区二区三区aⅴ| 色爱欲亚洲| 天天天天天干夜夜夜夜夜操| 男女无套 免费网站| 国产精品电| 草b在线| 大香蕉乱伦视频网| 欧美亚洲一级在线观看| 哈哈操电影| 久操大香蕉超碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰碰 | 亚洲国产精品有声| 99操| 在线播放免费av福利片| 蜜臀网址在线| 91美女在线视频| 日韩一区二区精品视频| 黑人狂躁日本妞一区二区三区| 伊香蕉综合久久久久久久噜噜噜| 久久久性爱视频| 青青草操逼逼视频| 久久久精品无码亚免费| 精品免费视频国产一区| 新91视频.cmp| 免费看污网址| 无码欧美有限公司| 日韩av乱伦| AA特级绝黄| 日熟女| 69国产对白刺激| 78操B| 久久精品无码熟妇一区二区三区视频导航 | 亚洲欧美国产中文字幕| 色播综合| 狠狠色狠狠色狠狠五月| 日本成熟少妇A∨网站| 狠狠爱夜夜| 亚洲中字慕不卡| 丝袜美腿射精91| 99re95| 久久久久密| 看日韩美女二区三区免费操逼视频 | 蜜桃久久一区二区三区| 日韩av在线免费网站| 日韩一区二区精彩视频| 97超碰超碰| 五十路一区无码| 亚洲交性| 国产丝袜一区二区三区| 亚洲drav色图| 麻豆国产成人精品| 91夜夜蜜桃臀1区2区3区| 密臀在线免费观看| 色一射色一射| 日韩素人无码一区二区三区三州| 五月丁香影视| 另类在线| 亚洲AV免费在线| 亚洲综合在线视频| 26uuu国产| 开心激情婷婷| 日本超碰在线国产一区| 欧美成人都市人妻| 99色综合| 日韩乱码Av| 99国内精品| 嗯啊不要啊啊在线观看视频| 久久综合18p| 麻豆乱码久久精| 亚洲阿v天堂在线| 国产伦精品一区二区三区在线观 | 中国熟妇| 久久黄人人爽视频| 五月情色天| 午夜αv| 久久男人天堂| 91P0RNY大屁股人妻| 国产精品不卡一区二区三区av| 亚洲欧洲av影音| 性暴力欧美猛交在线直播| 国产精品一区二区校花| 亚洲成a人片在线观看中文!!!| 强奸乱伦日韩AV| 激情专区综合| 亚洲不卡AV在线| 激情文学 国产一二三aV| 蜜臀久久久| 亚洲精品国产熟女久久久| 四虎精品永久在线观看| 9Ⅰ老熟女| 370p日韩欧美亚洲精品| 中日韩熟女| 五月天婷婷色色| 成 人 影视 一区 二区 三区 四区| 久久久久久大| 加勒比伊人综合| 91女日逼| 亚洲人体视频在线观看| 亚洲一欧洲中文字幕在线| 婷婷伊人网| 黄色二级片网站| 91女优在线观看 | 一级片在线观看高清无码| 久久精品国产亚洲AV无码电影| 91日韩在线| 美女97超碰| 亚洲 欧美 日本 国内 首页| 欧美日本成人一区二区| 亚洲暴力强奸AV| 91欧美| 97在线观看免费视频l| 伊人九九九| 中文日本免费高清| 大香交伊人网|