Как выполнить действие по истечении времени? Не будет ли cron слишком накладным?
есть таблица (message, date) с сообщением которое нужно отправить в определенное время. Проблема в том , что точность желательно должна быть очень высокой ,а таблица не из маленьких. есть ли какие нибудь более лаконичные решения нежели cron
Vitsliputsli, Согласен, выборка будет быстрой, но вставка записей о том, что и когда отправить будет занимать некоторое время. cron выполняет функцию(ии) через определенный промежуток времени так что для меня это показалось потенциальным решением
maqstein, вставка строчки с одним индексом также будет проходить быстро.
Можно и Cron, зависит от требований, я имел ввиду, что с Cron не вижу проблем, так что не очень понятно о "более лаконичном решении". Хотя если нужна высокая точность, и отправлений очень много, то нужен постоянно работающий сервис, а не планировщик. Который будет получать данные из базы периодически, а отправлять их строго в указанное время. Быть может, даже стоит посмотреть в сторону сервера очередей.
С другой стороны в postgresql есть возможность слать оповещения при изменениях в таблице. Но это вариант для редких изменений, у вас я так понял иное.
не маленькая - понятие весьма относительное. если выборка нужных дат реально занимает много времени, можно делать агрегацию, например, на следующие сутки/неделю/несколько часов.