Както е написано, друг работник, който се опитва да поиска заданието, ще блокира при заявка 1. Той може да види старата версия на реда, но не може да я актуализира - ще блокира.
Така че не го правете с една транзакция. Искане и ангажиране; свърши работата; след това разрешите и ангажирайте. Всички идващи работници ще видят, че редът вече е заявен. Освен това ти можете да видите, че е заявено, което ще ви помогне при отстраняване на грешки и наблюдение.
Когато заявите реда, трябва да маркирате с нещо отличително (pid, ако има само една работна машина, или име на хост и pid, ако има няколко), а не просто с „текущ“. По този начин, ако работник умре, можете ръчно да почистите след него.