我在 iis 中托管了 ac# web api,它有一个 post 方法,可以将文档 ID 列表插入到 Lotus Notes 数据库中。可以多次调用 post 方法,我想防止插入重复的文档。这是从帖子中调用的代码(在静态类中):lock (thisLock){ var id = "some unique id"; doc = vw.GetDocumentByKey(id, false); if (doc == null) { NotesDocument docNew = db.CreateDocument(); //some more processing docNew.Save(true, false, false); }}即使锁定到位,我也会遇到插入重复文档的情况。是因为请求可以在新进程上执行吗?防止它发生的最佳方法是什么?
2 回答
慕沐林林
TA贡献2016条经验 获得超9个赞
您的问题是:getdocumentbykey 取决于最新的视图索引。在繁忙的服务器上,不能保证这是真的。您可以尝试调用 vw.Update,但不幸的是,这不会触发视图索引的更新,因此它可能没有任何影响(它只是更新 vw 对象以表示后端发生的变化,如果后端做了不更新,那么它什么都不做)。
您可以db.Search('IdField ="' & id & '"', Nothing, 0)
改用,因为搜索不依赖于要重建的索引。这会稍微慢一点,但应该更准确。
- 2 回答
- 0 关注
- 173 浏览
添加回答
举报
0/150
提交
取消