我目前正在用Wordpress实现一个web应用程序。
然而,现在,我面临着一个我认为对每个试图用Wordpress实现wep应用程序的人来说都是一个普遍的问题。尽管如此,似乎没有人谈论它。
这个问题与数据一致性有关。在查看了关于该主题的不同来源并使用Wordpress代码玩了很长时间之后,我没有看到数据库ACID事务或任何其他确保数据一致性的方法的痕迹。考虑到一个用户请求可能会触发数据库上的多个写操作,这样一个关键问题似乎可能会导致数据不一致,因为在处理请求的过程中可能会出现故障,导致部分写操作。
这似乎在Wordpress API函数内部也会发生。
以wp\\u insert\\u post(一种常见的核心API操作)为例。这个函数似乎执行多个写操作,它们不会在数据库事务的范围内执行。在我看来,这是正确的,因为在我看来,事务生命周期应该在更高的应用程序层进行管理。
但是,即使在更高的层中,也不会使用任何事务。
更糟糕的是,我发现wp\\u insert\\u post隐藏了它在数据库上执行的大多数写调用的返回值(例如将缩略图保存为元数据、类别、标记等)。
这一事实可能会让调用者(如其他第三方插件或wordpress管理页面本身)认为所有内容都已正确保存到数据库中,而事实并非如此,从而阻止他们注意到这一点,因此他们无法正确处理事务(知道何时提交或回滚)或向用户提供适当的反馈。
我错过什么了吗?如何使数据最终在Wordpress应用程序中保持一致?
一般来说,我们如何确保使用Wordpress开发web应用程序不会导致噩梦,即试图管理此类数据不一致?
在此方面的任何帮助都将不胜感激。