Если пользователь посещает сайт, и его посещение вызывает довольно интенсивную работу cron, скорость загрузки страницы для него будет медленнее, верно? Как я понимаю, страница не ожидает выполнения задания cron перед загрузкой, но поскольку задание cron будет выполняться параллельно, возможно, страница все равно загружается медленнее, поскольку сервер занят, верно?
8
Ответы:
Краткий ответ - Нет . Любой запрос страницы инициализирует запланированную очередь. Это просто запрос инициализации. Запрос wp-cron является отдельным запросом.
Однако - если событие cron работает не очень хорошо (оно имеет 1000 запросов дБ, например, или оно запрашивает какой-то действительно длинный для ответа ресурс), или оба, или перепланирует событие cron для каждого запроса ... как и любой другой другой http-запрос потребляет ресурсы, производительность процессора, память и т. д. Если он потребляет достаточно ресурсов, ваша страница будет работать медленнее.
источник
Короткий ответ на самом деле да , в большинстве случаев.
Во-первых, в большинстве установок порождение задания cron приводит к задержке в 1 секунду при загрузке страницы, потому что это выполняется через HTTP-запрос обратной связи с тайм-аутом в 1 секунду - см. Https://wordpress.org/support/topic/save. -a-полное-второе-на-cron-выполнение / .
Во-вторых, порожденное задание теперь будет конкурировать с загрузкой страницы для доступа к базе данных (а также для других ресурсов). Несколько процессов могут читать базу данных одновременно; однако всякий раз, когда процесс выполняет запись в базу данных, по умолчанию он блокируется, чтобы предотвратить одновременный доступ на запись или чтение любым другим процессом - см. /programming/1005206/does-sqlite-lock-the-database. -file-on-reads # answer-1005218 . Влияние этого зависит от того, насколько сложны обновления базы данных задания cron и как долго база данных фактически заблокирована, и может быть незначительной. Конечно, это также было бы проблемой, если бы задание cron выполнялось при запросе страницы, но при этом задания cron появлялись с гарантией загрузки страницы. они будут влиять как минимум на загрузку этой страницы.
Если ваш сервер / хостинг позволяет, рекомендуется настроить запланированное задание cron для запуска каждые несколько часов с помощью команды
и отключить порождение cron при загрузке страницы с помощью следующей записи в
wp-config.php
:источник
private
такие методы,WP_Http::_dispatch_request
которые сейчас никогда не вызываются.)