> 데이터 베이스 > MySQL 튜토리얼 > mysql模拟队列_MySQL

mysql模拟队列_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
풀어 주다: 2016-06-01 13:34:45
원래의
1363명이 탐색했습니다.

bitsCN.com

mysql模拟队列

 

Java代码  

-- 初始化数据  

DROP TABLE IF EXISTS t_msg_queues;  

CREATE TABLE t_msg_queues(  

    msg_id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,  

    msg_content VARCHAR(255) NOT NULL,  

    owner_thread_id INT NOT NULL DEFAULT -1,  

    PRIMARY KEY (msg_id)  

)ENGINE=INNODB DEFAULT CHARSET=utf8;  

SET @maxRandom = POWER(10,6);  

INSERT INTO `t_msg_queues`(`msg_content`)   

VALUES (CONCAT("cont_",CEIL(RAND()*@maxRandom))),(CONCAT("cont_",CEIL(RAND()*@maxRandom)))  

    ,(CONCAT("cont_",CEIL(RAND()*@maxRandom))),(CONCAT("cont_",CEIL(RAND()*@maxRandom)))  

    ,(CONCAT("cont_",CEIL(RAND()*@maxRandom))),(CONCAT("cont_",CEIL(RAND()*@maxRandom)))  

    ,(CONCAT("cont_",CEIL(RAND()*@maxRandom))),(CONCAT("cont_",CEIL(RAND()*@maxRandom)))  

    ,(CONCAT("cont_",CEIL(RAND()*@maxRandom))),(CONCAT("cont_",CEIL(RAND()*@maxRandom)))  

    ,(CONCAT("cont_",CEIL(RAND()*@maxRandom))),(CONCAT("cont_",CEIL(RAND()*@maxRandom)));  

      

-- 获取1条未处理的消息  

SET SESSION autocommit=1;  

SET @msgID = -1;  

UPDATE t_msg_queues SET owner_thread_id=GREATEST(CONNECTION_ID() ,(@msgID:=msg_id)*0)  

WHERE owner_thread_id=-1 ORDER BY msg_id LIMIT 1;  

-- 此时@msgID如果为-1,代表没有待处理的消息,否则就代表本次需要处理的msg_id  

 

bitsCN.com
관련 라벨:
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿