@aopil

Как задать условие выборки более старых записей по времени?

Есть 1000 IP в БД и я написал сценарий, который запускается каждые 5 минут, и проверяет работоспособность IP выбирая только 25 штук. После проверки в бд записывается время когда была сделана проверка.
Если прошел 1 час нужно снова проверять IP, сценарий срабатывает, но суть в том, что если IP 1000 штук, а проверка нужна каждый час, то успевают провериться максимум 300 штук, и затем эти 300 нужно снова проверять (из-за условия, которое срабатывает - прошел час)
вот так задаю условие:
WHERE Time < NOW() - INTERVAL 1 HOUR

Оставшиеся 700 не смогут провериться из-за того, что скрипт вернется к началу из-за того, что уже прошел час.

Суть в том, что я хочу, чтобы проверялись все, пускай это будет в течении 5-7 часов, но чтобы не было такого, что скрипт зацикливался на первых 300 IP.

Может быть как-то задать условие, чтобы он выбирал заказы с более поздним временем?
Т.е. выбирал в первую очередь те записи, у которых время записано самое далекое от текущего? и таким образом получим цикл бесконечных проверок, который будет крутится все время.

Подскажите, так ли думаю?) и если да, то как задать условие такое?
  • Вопрос задан
  • 40 просмотров
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
и проверяет работоспособность IP выбирая только 25 штук

Ну и где эта часть запроса?
Поправьте свой order by на сортировку по дате проверки. И будете получать записи проверенные наибольшее время назад.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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