Моя работа cron не работает — Не удалось открыть ошибку входного файла

#woocommerce #cron #cron-task

Вопрос:

У меня есть веб-сайт woocommerce, и я использую плагин для дропшиппинга. Поскольку я нахожусь на общем сервере, я попытался настроить задание cron, чтобы уменьшить загрузку процессора моего сайта. Я проверил плагин дропшиппинга, и у них есть 5 запланированных заданий cron, и я хотел добавить это расписание в свой набор, но я не уверен, правильно ли я это сделал.

Таким образом, в моей панели управления они имеют следующую структуру:

public_html/wp-контент/плагины/bdroppy/src/CronJob/Вакансии

В папке CronJob у них есть папка заданий и 1 файл CronJob.php. закадычная дружба

В папке «Задания» у них есть 6 php-файлов. cronjob-папка заданий

Поэтому я добавил все задачи, которые были в папке CronJob/Jobs, в свою учетную запись siteground:

php /главная страница/******/www/ *********/public_html/wp-content/plugins/bdroppy/src/CronJob/Jobs/QueueJob.php

но я получил ошибку «Не удалось открыть ошибку входного файла» для каждой задачи. Должен ли я добавить CronJob.php также к команде задания cron? Надеюсь, я все объяснил правильно и спасибо за любую помощь! 🙂

Ответ №1:

Насколько я понял, вы отключили WP-Cron из-за соображений производительности, и вместо этого вы хотите работать wp-cron.php непосредственно с вашего общего сервера. Запуск wp-cron.php позаботится о выполнении любых событий, запланированных с помощью этой wp_schedule_event функции. Включая события плагина drop shipping, который вы используете. На самом деле плагин регистрирует свои события в admin_footer крючке. Поэтому, пока вы активировали плагин, вам больше ничего не нужно делать.

Правильной командой для задания cron (для настройки на вашем сервере) является:

 php -q  /home/******/www/ *********/public_html/wp-cron.php
 

Чтобы проверить, правильно ли запланированы события плагина ( bdroppy_queues_event т. е. bdroppy_change_catalog_event , bdroppy_update_catalog_event , bdroppy_update_product_event и bdroppy_sync_order_event ), вы можете либо использовать выделенный плагин (например, WP Crontrol), либо использовать интерфейс командной строки WP ( wp-cli ), который также должен быть доступен на вашем общем сервере.

Если вы хотите использовать wp-cli , вам нужно:

  • ssh на ваш общий сервер;
  • перейдите в public_html каталог;
  • выполните эту команду: wp cron event list

Для получения дополнительной информации о том, как использовать wp-cli список запланированных событий cron, ознакомьтесь с его документацией.

Комментарии:

1. Привет, Диего, спасибо за твое объяснение, я ценю это. Я пытался связаться с Siteground, но они на самом деле не дают нам никакой надлежащей информации, чтобы понять, в чем была проблема или как она работает. Так что теперь я добавил то, что вы предложили, и, похоже, это работает.

2. Похоже, что Siteground позволяет вам использовать wp-cli задание в cron (более подробную информацию см. в этом руководстве ). Возможно, это лучший вариант, чем использовать php напрямую. И не забудьте отключить WP-Cron в своем wp-config.php (т. е. define('DISABLE_WP_CRON', true); ). Правильно ли сейчас выполняются события WP?