Vaše dequeue by mohla být stručnější. Spíše než se spoléhat na vrácení transakce, můžete to udělat jedním atomickým příkazem bez explicitní transakce:
UPDATE jobs SET process_id = ? WHERE process_id IS NULL ORDER BY ID ASC LIMIT 1;
Poté můžete úlohy stáhnout pomocí (závorky [] znamenají volitelné, v závislosti na vašich podrobnostech):
SELECT * FROM jobs WHERE process_id = ? [ORDER BY ID LIMIT 1];