Почему CRON затормаживает работу всего сайта для всех пользователей?
Необходимо кое-что обновлять на сайте у всех записей одной таблицы по расписанию.
Создал для этого CRON задачу. По сути, эта задача состоит в том, что сервер по расписанию выполняет wget, тупо переходит по ссылке в нужный контроллер и экшен.
В этом экшене есть цикл, который перебирает все записи и обновляет в них необходимое. Поскольку записей много я решил сделать между обновлениями интервал с помощью sleep(30). И именно это и тормозит сайт у всех пользователей.
Почему так? Получается, что sleep в Ruby аналогичен sleep из bash, что означает, что происходит задержка в 30 секунд для всего Rails проекта.
У Вас будет занят, просто один воркер, что собственно в корне не верно, почему не вызывать данное обновление без сервера, по таску.
UPD:
К примеру whenever