sql >> Database >  >> RDS >> PostgreSQL

Wachtrij in php en postgres

Zoals geschreven, zou een andere werknemer die de taak probeert te claimen, blokkeren bij vraag 1. Hij kan de oude versie van de rij zien, maar kan deze niet bijwerken - hij zou blokkeren.

Doe het dus niet in één transactie. Claimen en plegen; doe het werk; dan oplossen en committeren. Alle arbeiders die langskomen, zullen zien dat de rij al is geclaimd. Ook jij kan zien dat het is geclaimd, wat u zal helpen bij het debuggen en controleren.

Wanneer u de rij claimt, moet u deze markeren met iets onderscheidends (een pid, als er maar één worker-machine is, of een hostnaam en pid, als er meerdere zijn) in plaats van gewoon met 'ongoing'. Op die manier kun je, als een werknemer sterft, daarna handmatig opruimen.



  1. oracle ExecuteScalar in parallel programmeren geeft soms null terug

  2. Hoe het aantal keren te tellen dat twee waarden in willekeurige volgorde in twee kolommen worden weergegeven

  3. De kolommen van de MySql-tabel bestellen met Python

  4. Mysql-gegevens weergeven in opgemaakte tabel