Задание WP Cron выполняется, но не выполняет полную функцию - PullRequest
0 голосов
/ 12 декабря 2018

Так что я делаю плагин, который использует API YouTube V3 для получения видео с нашего канала YouTube и превращает их в посты для нашего сайта.

Для этого я использую WP Cron.Обычно каждые 12 часов он проверяет, есть ли новые видео, если есть новые, они используют API YouTube V3, чтобы превратить их в сообщения.

Кажется, все работает нормально, кроме одной вещи,когда WP вызывает задание cron, полной функции не происходит.

Это должно быть около 4 видео.Он загружается только один раз.

Также по какой-то причине iframes, который помещает видео внутрь страницы, не отображаются.

Но когда я вызываю задание cron вручную, используяПлагин Cron Manager «Advanced Cron Manager» все работает как надо.

Могу подтвердить, что функция работает.

Я также могу подтвердить, что когда я говорю WordPress запускать задание cron, оно работает.

Только когда WP решает самостоятельно запустить задание cron, эта функция не работает.Это работает.И он делает кое-что из того, что должна делать функция, но не все.

Так что мой вопрос не столько в том, «почему API YouTube не работает», ни «почему не работает моя задача cron», нопочему задание wp cron работает при вызове вручную, а не при вызове wp?

1 Ответ

0 голосов
/ 12 декабря 2018

Это не только WP, это может произойти в любых рамках.Это больше похоже на обобщенный вопрос.Вот что я предлагаю вам сделать:

  1. Проверьте журналы ошибок.возможно у вас проблемы с ограничением памяти.Если это так, убедитесь, что для memory_limit установлено что-то высокое, например, 256 или 512M.

  2. Поместите различные пользовательские сообщения журнала в вашу функцию и запишите его в отдельный файл журнала, чтобы вы моглихотя бы знать, где и где он работает.

  3. Независимо от того, какие запросы вы делаете к внешнему apis, например к youtube, поместите его в блок try catch, чтобы перехватывать любые исключения и регистрировать их тоже.

Надеюсь, вы сможете отладить его таким образом, удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...