По умолчанию WordPress использует встроенное решение для выполнения заданий по расписанию, которое генерирует дополнительный вызов веб-сервера каждый раз, когда отображается страница.
На странице с высоким трафиком это становится проблемой, поскольку создает дополнительную задержку при отображении страницы и использует ресурсы, предназначенные для обслуживания вебстраницы.
Решение состоит в том, чтобы отключить WordPress от выполнения внутренних запланированных заданий и настроить системный cron в опции Crontab
в администрировании веб-хостинга:
Добавьте новое задание cron. Выберите Системно
в разделе Тип запуска:
и вставьте следующую строку в поле Команда
:
wp cron event run --due-now --path=[[$D2ND_A]]/htdocs/
Прокрутите вниз до пункта План запуска
и выберите время after every 5 minutes
.
Затем сохраните изменения внизу страницы.
Затем в файл wp-config.php
веб-сайта необходимо добавить строку, чтобы отключить встроенный cron WP, например, после настройки доступа к базе данных:
define( 'DISABLE_WP_CRON', true );
Как проверить?
Вы можете проверить через файл /logs/apache.ssl.access.log
, остановились ли внутреннее задание cron WordPress.
После изменения wp-config.php
больше не должно быть обращений к wp-cron.php
:
sinudomeen.ee 2023-01-28T02:12:24.574229Z 217.146.69.51 38562 - - "POST /wp-cron.php?doing_wp_cron=1674871944.5444300174713134765625 HTTP/1.1"
Вы можете проверить производительность системного cron, отправив ему по электронной почте уведомления о выводе и ошибках. Это можно сделать в настройках рассматриваемого задания cron:
Примерно через 5 минут должно прийти первое уведомление:
=== Information === Result[19950]: Success Duration Time: 00d 00h 00m 03s Duration Period: 2023-01-28 13:50:01 - 2023-01-28 13:50:04 === Command Output (653.0 B) === Executed the cron event 'wp_privacy_delete_old_export_files' in 0.002s. Executed the cron event 'wp_site_health_scheduled_check' in 1.631s. Executed the cron event 'recovery_mode_clean_expired_keys' in 0.001s. Executed the cron event 'wp_https_detection' in 0.096s. Executed the cron event 'wp_version_check' in 0.413s. Executed the cron event 'wp_update_plugins' in 0.354s. Executed the cron event 'wp_update_themes' in 0.352s. Executed the cron event 'wp_scheduled_delete' in 0.004s. Executed the cron event 'delete_expired_transients' in 0.002s. Executed the cron event 'wp_update_user_counts' in 0.001s. Success: Executed a total of 10 cron events.
Затем вы можете отключить уведомление или выбрать получение уведомлений только в случае ошибок.