Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Qual é a melhor maneira de implementar uma tabela de filas de mensagens no mysql


Sua fila poderia ser mais concisa. Em vez de depender da reversão da transação, você pode fazer isso em uma instrução atômica sem uma transação explícita:
UPDATE jobs SET process_id = ? WHERE process_id IS NULL ORDER BY ID ASC LIMIT 1;

Então você pode puxar trabalhos com (colchetes [] significam opcionais, dependendo de seus dados):
SELECT * FROM jobs WHERE process_id = ? [ORDER BY ID LIMIT 1];