Construiește o coadă de joburi care se scalează curat
Există o coadă de joburi în baza de date — tabela jobs cu statusul pending pentru rândurile neexecutate. Cinci lucrători se uită la ea concurent: fiecare vrea să apuce cel mai vechi job și să-l marcheze drept „în lucru". Un lock obișnuit la nivel de rând cu o limită face ca toți cei cinci lucrători să se îngrămădească pe același rând și să se serializeze. Remediul este să sari peste rândurile deja blocate și să-l iei pe următorul liber: fiecare lucrător își primește propriul job, iar paralelismul funcționează fără coliziuni.
jobs(id SERIAL, status, payload) conține patru rânduri pending (a, b, c, d). Apucă un job pending din jobs cu cel mai mic id, comută-l la running — celelalte trei rămân pending.
Conectează-te pentru a vedea istoricul soluțiilor trimise
Conectează-teConectează-te pentru a folosi Mentorul AI
Conectează-te