Задать вопрос
@Evdokim001
PHP & WordPress developer

Почему Cron не влияет на работу сайта?

Добрый день. Понимаю что Cron все же действует на скорость сайта но недавно столкнулся со следующей проблемой. Когда вешаю функцию на хук AJAX, весь сайт начинает глючить но когда использую cron с этой функцией вообще нет ощущения что скрипт работает. Использую встроенный Cron WordPress. Дополнительно также есть вопрос о том, как можно включить свою PHP функцию, чтобы она не влияла на производительность сайта?
Заранее спасибо
  • Вопрос задан
  • 114 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
402d
@402d
начинал с бейсика на УКНЦ в 1988
fkn.ktu10.com/?q=node/10487
Как проявляется проблема
Проблема касается обычно обслуживания частых или одновременных запросов одного пользователя -- вы запрашивает скрипт, который долго "не отпускает" сессию, и все другие скрипты, запрошенные этим пользователем и тоже работающие с сессией виснут.
Ответ написан
Комментировать
iMedved2009
@iMedved2009
Не люблю людей
1. Хреновый вариант fastcgi_finish_request. Эту функцию можно поставить перед выполнением большой задачи, она ответит вебсерверу - он отдаст данные клиенту, а код продолжит работать, клиент перестанет ждать и пойдет по своим делам. Вариант херовый потому что можно легко получить ситуацию когда все воркеры выполняют тяжелые задачи - а клиенты получают 502.
Ну и работает только в режиме fast_cgi.

2. Менее хреновый вариант. Перенести задачу в отдельны скрипт и отправить его в бэкграунд через exec и nohup.
exec('/usr/bin/nohup php script.php >/dev/null 2>&1 &');
Минус - в том что вы ровно так же можете получить вагон запущенных скриптов и сожрать уже не все воркеры php-fpm а все ресурсы сервера

3. Вариант - очереди. Тут без особых минусов кроме того как я хрен знает можно ли это легко привязать к wordpress
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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