У меня некая сущность не меняется год, мне для её очередей сессии открытыми год держать? При чём здесь deque?
Нет, конечно. Но вот вы делаете deque, что подразумевает , что эта функция вернёт вам следующий элемент из очереди. Вы же его в таблице залочите ? что бы другие знали ,что вы с ним работаете . И если все успешно , то вы его удалите и закомитите , а если не успешно ( у вас клиент, например упал ), то произойдет rollback и запись вновь станет доступной для обработки. Т.е Лок нужен только от начала извлечения записи и до комита. Если не так, о как иначе вы предполагаете ?