如何解决当两个客户端同时通过PUT或PATCH更新资源时,避免覆盖
首先,这种情况还没有被编码,只是计划,一切都在我脑海中发生。
我的情况是-有两个客户端,A和B。
虽然已有一个资源名称“ daily_visitor”,它看起来像这样
{
"adult":100,"child":44
}
现在,A和B都从数据库中获取此资源,然后它们几乎同时执行PATCH请求和PUT请求,因此它们在上面得到的结果相同。
我们说如果A是这样的PATCH(它想要添加3位成人来记录)
{
"adult":103
}
然后B是这样的PUT(它想要添加1个成人和1个孩子进行记录)
{
"adult":101,"child":45
}
两个结果最终都会导致结果中缺少一些访问者。
在这种情况下,该方案的最终结果如何变为以下?
{
"adult":104,"child":45
}
我已经让A或B进行了一次更新:A:大人= 3 / B:大人= 1&孩子= 1,正在考虑中。
但是我担心客户端发送的更新不止一次,并且数量会弄乱。
然后,我最终尝试使用PATCH / PUT资源(因为它们是幂等的,因此用户可以在页面不刷新的情况下发送任意数量的时间?)
但是我在更新数字时发现了这个问题。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。