Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der beste Weg, eine Messaging-Warteschlangentabelle in mysql zu implementieren

Ihr Dequeue könnte prägnanter sein. Anstatt sich auf das Transaktions-Rollback zu verlassen, könnten Sie dies in einer atomaren Anweisung ohne explizite Transaktion tun:

UPDATE jobs SET process_id = ? WHERE process_id IS NULL ORDER BY ID ASC LIMIT 1;

Dann können Sie Jobs abrufen mit (Klammern [] bedeuten optional, abhängig von Ihren Angaben):

SELECT * FROM jobs WHERE process_id = ? [ORDER BY ID LIMIT 1];