hummingbird
@hummingbird

Почему CRON затормаживает работу всего сайта для всех пользователей?

Необходимо кое-что обновлять на сайте у всех записей одной таблицы по расписанию.

Создал для этого CRON задачу. По сути, эта задача состоит в том, что сервер по расписанию выполняет wget, тупо переходит по ссылке в нужный контроллер и экшен.

В этом экшене есть цикл, который перебирает все записи и обновляет в них необходимое. Поскольку записей много я решил сделать между обновлениями интервал с помощью sleep(30). И именно это и тормозит сайт у всех пользователей.

Почему так? Получается, что sleep в Ruby аналогичен sleep из bash, что означает, что происходит задержка в 30 секунд для всего Rails проекта.

Как все же реализовать интервал в цикле Rails?
  • Вопрос задан
  • 174 просмотра
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
У Вас будет занят, просто один воркер, что собственно в корне не верно, почему не вызывать данное обновление без сервера, по таску.
UPD:
К примеру whenever
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы