我在 C# 中编写了一个简单的 Web 服务(asmx)
客户端使用 post 和 title 参数访问 web 服务,并期望服务返回一个对象,其中包含有关该标题键的更多详细信息。
我面临的问题是,在我的网络服务执行开始时,我检查提供给我的标题是否存在于我的数据库中。如果不是,我构建正确的对象,我将它保存到我的数据库中以备将来搜索以避免重建它(因为我使用第三方 Web 服务进行构建),然后我以 json 格式发回客户询问的对象为了。
然而,这会导致竞争情况,因为 2 个客户端可能会请求相同的标题,并最终将同一对象插入数据库两次,因为其中一个客户端速度不够快,无法在另一个客户端请求之前写入该对象。
我使用 Mysql 数据库,我想弄清楚如何避免这种赛车情况?
密钥是存储过程吗?
我该如何解决这个问题?
注意:我的数据库中的关键是标题列和年份列。
提前致谢