Home > Database > Mysql Tutorial > mysql模拟队列_MySQL

mysql模拟队列_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Release: 2016-06-01 13:34:45
Original
1364 people have browsed it

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
Related labels:
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Latest Issues
MySQL stops process
From 1970-01-01 08:00:00
0
0
0
Error when installing mysql on linux
From 1970-01-01 08:00:00
0
0
0
phpstudy cannot start mysql?
From 1970-01-01 08:00:00
0
0
0
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template