Troubleshooting

Troubleshooting

Как забирать записи из таблицы когда много экземпляров шедулера

https://www.2ndquadrant.com/en/blog/what-is-select-skip-locked-for-in-postgresql-9-5/

SELECT id, content FROM jobs WHERE next_delivery <= $now FOR UPDATE SKIP LOCKED LIMIT n UPDATE jobs SET next_delivery = $nextDelivery

То есть, одновременно со считыванием ставим lock с помощью next_delivery. Это позволит скрыть событие от других экземпляров и процессов на определенное время N.