Как запускать функцию строго в указанное время с точностью до минуты, при том что время лежит в базе и нагружать базу нельзя?
Есть сервис для работы с vk.com. Если вкратце, юзеры добавляют в базу посты. Так же юзеры указывают по какому расписанию постить эти посты, например раз в день в 14.00. То есть в базе лежит timestamp с датой, когда пост должен уйти.
Нужно придумать как запускать функцию постинга строго в указанное время с точностью до минуты.
Ставить скрипт в крон, который будет каждую минуту дергать базу не охота, слишком большая нагрузка будет. Рухнет база, рухнет весь сервис
Писать кучу заданий в крон, для каждого поста свое, тоже на вариант, уже пробовали, сервер вешается.
Единственно что пришло в голову более-менее адекватное, это создать другую базу на sqllite, с расписаниями. Таким образом снять нагрузку с основной базы. Но решение явно костыль.
Гуру высоких нагрузок, подскажите более изящный метод)
Ставить скрипт в крон, который будет каждую минуту дергать базу - как раз то, что вам и нужно. Никакой нагрузки на базу это не даст. Там же простейший селект по одной таблице.