Доброго дня.
Как раз через Крон самый вариант.
Вам не обязательно делать "кучу" запросов - SQL язык достаточно мощный и можете за один раз выбрать всю интересующую информацию.
Раз в секунду вовсе не обязательно. Если "3 дня на проверку", то достаточно проверять раз в час, или раз в сутки вообще (смотря с какой точностью Вам надо).
Сомневаюсь, что у Вас будет столь "высоконагруженный" сервис, что бы обработка хотя бы 1000 позиций заняло сколь нибудь существенное время.
Если всё таки по каким-то причинам не хватает 30 секунд на выполнение скрипта и реально "существенная" нагрузка - обрабатывайте порциями (одним запросом выгружаете всё, что нужно обработать, ставите флаг, что не запускать до конца обработки, а потом уже обрабатываете 100 штук за раз, а после снимаете флаг), либо переписываете код по-нормальному и оптимизируете, либо создаёте кластер серверов и распределяете задания, но это совсем другая история. Думаю, принцип понятен.