#826

Направи опашка от задачи, която се мащабира без колизии

В базата има опашка от задачи — таблица jobs със статус pending за неизпълнените редове. Пет работника я гледат едновременно: всеки иска да грабне най-старата задача и да я отбележи като „в процес“. Обикновено заключване на ред с лимит кара и петте работника да се струпат на един и същ ред и да се сериализират. Лекът е да се прескачат вече заключените редове и да се вземе следващият свободен: всеки работник получава своята задача и паралелизмът работи без колизии. jobs(id SERIAL, status, payload) съдържа четири pending реда (a, b, c, d). Вземи една pending задача от jobs с най-малък идентификатор, превключи я на running — другите три остават pending.

Резултатът от заявката ти ще се покаже тук