Как предотвратить двойную обработку одной строки из базы?
нужно писать уникальный ИД и по нему выбирать строку.
Т.е.
1. в скрипте генерируете хэш
2. делаете апдейт с этим хэшем
3. по этому хэшу уже берете строку и отрабатываете.
Предположительно у вас таблица содержит задачи в формате:
 id | execute_in | executed_at
 1 | 10:00 | null
 2 | 10:01 | null

Так вот чтобы выбрать на языке postgresql, можно выполнить следующий запрос
UPDATE jobs SET executed_at = now() WHERE id = (SELECT id FROM jobs WHERE execute_in <= now() AND executed_at is null LIMIT 1) AND executed_at is null RETURNING id

Тем самым мы обновляем только одну запись и после ее обновления получаем еë id, или всю запись