【发布时间】:2021-06-20 05:49:51
【问题描述】:
有这两种应用:
- 带有 REST-API 的 WordPress 站点。我们称之为Brandon。
- 另一个系统,使用 REST-API。我们称之为 Jeremy。
我知道 WordPress Stack Exchange,但这更像是一个 PHP 问题,而不是一个 WordPress 问题(我认为)。
问题
Jeremy 在 Brandon 上创建和更新“原子”。
每当 Jeremy 更新 Brandon 上的一个原子时,紧接着就会运行一个名为 BuildMolecules() 的操作,将原子分组并更新 Brandon 上分子的电子、中子和质子信息。
但目前,这是在 Jeremy 的帖子上完成的。这意味着如果 Jeremy 更新了一个原子,那么它必须等待 BuildMolecules() 完成,然后才能返回其响应。更糟糕的是,如果出现问题,而 BuildMolecules() 运行时,Jeremy 会收到一个错误,这是错误的(因为原子已按应有的方式更新)。最后这件事可以而且应该用 try/catch 语句来解决,但仍然......
如何在 Jeremy 更新原子后立即运行一个函数,而不在 Jeremy 的线程上执行?
解决方案尝试和注意事项
CRON 作业
我考虑过每 5-10 秒运行一次 cron-job,检查原子是否已更新。如果是这样,则运行更新操作。感觉有点调皮,因为我必须经常运行它,才能实现 Jeremy 和 Brandon 之间的顺利整合。但这应该有效。如果运行时间超过 5-10 秒,那么我将不得不考虑这一点,设置状态或其他东西,停止 BuildMolecules() 运行两次,而它应该只运行一次。
新话题
即使我可以设置一个新线程(我从未做过类似的事情),我也可以在这里阅读这篇文章:Creating new thread(?) in PHP 我不应该尝试这样做。
如果 WordPress 为其提供功能
我查看了WordPress' REST-documentation,但找不到任何可以帮助我的东西。
【问题讨论】:
标签: php wordpress cron try-catch wordpress-rest-api