#826

Naredi vrsto opravil, ki se čisto razveje vzporedno

V bazi je vrsta opravil — tabela jobs s statusom pending za nezagnane vrstice. Nanjo hkrati gleda pet delavcev: vsak hoče zgrabiti najstarejše opravilo in ga označiti kot »v obdelavi«. Navadna ključavnica na ravni vrstice z omejitvijo povzroči, da se vseh pet delavcev nakopiči na isti vrstici in se serializirajo. Zdravilo je preskočiti vrstice, ki so že zaklenjene, in vzeti naslednjo prosto: vsak delavec dobi svoje opravilo, vzporednost pa deluje brez trkov. jobs(id SERIAL, status, payload) vsebuje štiri vrstice pending (a, b, c, d). Zgrabi eno opravilo pending iz jobs z najmanjšim identifikatorjem in ga preklopi v running — preostala tri ostanejo pending.

Rezultat vaše poizvedbe se bo prikazal tukaj