首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >保存记录时的乐观锁定

保存记录时的乐观锁定
EN

Stack Overflow用户
提问于 2019-09-26 06:02:51
回答 1查看 25关注 0票数 0

在slingr.io上的应用程序中,有一个侦听器,它会在网络钩子到达时执行。在监听程序中,我们有一个类似这样的代码:

代码语言:javascript
运行
复制
// process webhook
// ...
record.field('status').val('active');
sys.data.save(record);

在日志中我们看到,在许多情况下,我们得到以下错误:

代码语言:javascript
运行
复制
» 2019-09-25 18:52:00.349 ERROR system@nbt.slingrs.io Optimistic locking exception saving record [Order T792-18]

这种情况并不总是发生,但仅在某些情况下发生。原因是什么?如何防止它的发生?

EN

回答 1

Stack Overflow用户

发布于 2019-09-26 06:02:51

这是由于并发问题,因为许多webhook可能几乎同时到达,因此多个线程试图并发更新记录。

在编辑记录时避免此问题的最方便的方法是使用lock()方法,如下所示:

代码语言:javascript
运行
复制
// process webhook
// ...
record.lock(function(record) {
  record.field('status').val('active');
  sys.data.save(record);
);

如果其他线程试图同时更新记录,这将放入一个信号量。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58107118

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档