在使用第三方API时,我需要存储一些状态信息来帮助跟踪流程。我想知道我应该把它存放在哪里,怎样存放。
具体地说,我有一个多页重力表单,使用它们提供的挂钩,我在填写第一页后向API提交POST请求,获取唯一ID,然后通过补丁请求将第二页的字段提交给API。(这种看似复杂的流程有很好的理由。)
我有一个用于表单提交的唯一ID,以及一个用于创建并需要更新的API记录的唯一ID。我要寻找的是连接数据库中信息的最佳方式,以便在表单的第二页完成时,我知道应该更新哪个API记录。
我考虑过使用Transients API,因为根据定义,这是一种非常临时的存储需求,但由于数据不能保证在我需要时存在,我认为它不会起作用。
我倾向于使用带有选项API的关联数组(以唯一的表单ID为键)。我担心的是:如果我有几十人甚至数百人同时填写这份表格,那么一个选项是否存在种族状况或类似问题的风险?我是否应该在每次提交表单时将其分为一个选项?或者创建一个类似于Posteta表的单独表?
还是我想得太多了,一个选项中的单个数组就可以了?
最合适的回答,由SO网友:Sarah Lewis 整理而成
我对100名同时访问的用户运行了JMeter负载测试,以查看通过options API将数组写入wp\\U options表是否可行,因为我知道每次访问都需要更新数组。
此测试确认,只有一部分数据库更新按其需要的方式进行,而不会覆盖阵列的其他版本。我预计故障的确切比例会随着负载的变化而变化,但由于我需要可靠的状态信息,任何故障都会使我无法启动。
我接下来的计划是创建一个类似于Posteta表的自定义表,但将我的唯一表单ID和唯一API ID绑定在一起,而不是一个post。