Задать вопрос
@radik2806

Как запускать функцию строго в указанное время с точностью до минуты, при том что время лежит в базе и нагружать базу нельзя?

Есть сервис для работы с vk.com. Если вкратце, юзеры добавляют в базу посты. Так же юзеры указывают по какому расписанию постить эти посты, например раз в день в 14.00. То есть в базе лежит timestamp с датой, когда пост должен уйти.

Нужно придумать как запускать функцию постинга строго в указанное время с точностью до минуты.
Ставить скрипт в крон, который будет каждую минуту дергать базу не охота, слишком большая нагрузка будет. Рухнет база, рухнет весь сервис
Писать кучу заданий в крон, для каждого поста свое, тоже на вариант, уже пробовали, сервер вешается.

Единственно что пришло в голову более-менее адекватное, это создать другую базу на sqllite, с расписаниями. Таким образом снять нагрузку с основной базы. Но решение явно костыль.

Гуру высоких нагрузок, подскажите более изящный метод)
  • Вопрос задан
  • 234 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
Melkij
@Melkij
PostgreSQL DBA
Если один запрос в минуту из крона - это слишком большая нагрузка, то проблема у вас где-то в другом месте.
Ответ написан
Комментировать
@jaxel
Ставить скрипт в крон, который будет каждую минуту дергать базу - как раз то, что вам и нужно. Никакой нагрузки на базу это не даст. Там же простейший селект по одной таблице.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы