php - WP Cron 作业正在运行但未执行完整功能
问题描述
所以我正在制作一个插件,它使用 youtube V3 api 从我们的 youtube 频道带来视频并将它们变成我们网站的帖子。
我正在为此使用 WP Cron。基本上每 12 小时它会检查是否有任何新视频,如果有新视频,它会使用 YouTube V3 API 将它们转换为帖子。
一切似乎都工作正常,除了一件事,即当 WP 调用 cron 作业时,完整的功能不会发生。
它应该拉入大约 4 个视频。它只拉一个。
同样由于某种原因,将视频放入页面内部的 iframe 不会显示。
但是,当我使用 Cron Manager 插件“Advanced Cron Manager”手动调用 cron 作业时,一切正常。
我可以确认该功能有效。
我还可以确认,当我告诉 wordpress 运行 cron 作业时它可以工作。
只有当 WP 决定自己运行 cron 作业时,该功能才不起作用。它确实运行。它确实做了一些函数应该做的事情,而不是所有事情。
所以我的问题不是“为什么 youtube api 不起作用”或“为什么我的 cron 作业没有运行”,但是为什么 wp cron 作业在手动调用时会起作用,但在 wp 调用时却不起作用?
解决方案
它不仅是 WP,它可以发生在任何框架中。这更像是一个笼统的问题。这是我建议你做的:
检查您的错误日志。也许你有内存限制问题。如果是这种情况,请确保将 memory_limit 设置为 256 或 512M 之类的高值。
将各种自定义日志消息放入您的函数中并将其记录到单独的日志文件中,以便您至少知道它在哪里运行和在哪里停止。
无论您对 youtube 等外部 api 提出什么请求,都将其放入 try catch 块中以捕获任何异常并记录它们。
希望你能以这种方式调试它,祝你好运!
推荐阅读
- java - 将对象添加到 json 文件中的对象的 JsonArray
- python - 如何使用 python unittest 在模拟对象中模拟列表?
- python - Odoo - 计算字段导入
- angular - “Angulartics2GoogleAnalytics”类型上不存在属性“startTracking”
- python - Python 3 urllib Discord 与 Slack Bot
- junit - Junit双引号比较
- google-apps-script - 谷歌应用程序脚本如何在另一个工作表中复制条件格式
- unity3d - 为什么当玩家死亡时粒子不显示,它自己工作正常,但当它击中受伤的物体时不显示?(我正在做一个 2D 游戏)
- spring-boot - 无法使用@JmsListener 连接到远程队列
- unity3d - 如何将文件从 Unity 场景发送给我的朋友