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

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

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

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

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

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

Как все же реализовать интервал в цикле Rails?
  • Вопрос задан
  • 189 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Thinknetica
    Профессиональная разработка на Ruby on Rails
    9 месяцев
    Далее
  • Skillbox
    Ruby on Rails с нуля
    10 месяцев
    Далее
  • Хороший программист
    Интенсив по Ruby on Rails
    5 месяцев
    Далее
Решения вопроса 1
Dem1
@Dem1 Куратор тега Ruby on Rails
Ruby on Rails developer
У Вас будет занят, просто один воркер, что собственно в корне не верно, почему не вызывать данное обновление без сервера, по таску.
UPD:
К примеру whenever
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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