ODOO 开发异步限制规范【表单类】

简介: ODOO 开发异步限制规范【表单类】异步类型一:同时操作异步;描述:两个访问者,同时对一张表单进行编辑。可能出现异步,导致最终存值出错。故此,需要在表单方法中添加检测是否有其他人在操作。【未来,需要添加此表单正在被 N 人浏览及此表单正在被 partner_id 改写,等前端显示功能】ODOO 框架支持并发控制,以防止由于同一文档的并发修改而导致数据丢失,即使这不是一个常见的问题(请参见下面的原因)。

ODOO 开发异步限制规范【表单类】

异步类型一:同时操作异步;

image

描述:两个访问者,同时对一张表单进行编辑。可能出现异步,导致最终存值出错。故此,需要在表单方法中添加检测是否有其他人在操作。

【未来,需要添加此表单正在被 N 人浏览及此表单正在被 partner_id 改写,等前端显示功能】

ODOO 框架支持并发控制,以防止由于同一文档的并发修改而导致数据丢失,即使这不是一个常见的问题(请参见下面的原因)。

该机制是通过乐观并发控制(OCC)实现的,并且自 Openerp5.0 开始就存在。不使用悲观锁,因为在无状态的基于 Web 的环境中(用户可以随时离开桌面)是不现实的, 而且在资源争用方面通常是一个不好的解决方案。大多数具有并发控制机制的现代框架都使用 OCC(Rails、Google 应用程序引擎等)。

实现方式;

ODOO 的 OCC 实现依赖于虚拟的 last_update 字段的使用,客户机可以在任何模型上作为常规 read()调用的一部分显式请求该字段。该值将从写入日期自动推断,并创建框架在任何记录上默认维护的日期字段。

当客户机稍后对同一条记录进行 write()调用时,它可以传递包含原始上次更新值的额外上下文结构,如果同时更新了记录,系统将自动引发错误。有关 last_update

详细信息,请参阅 _check_concurrency()方法。

当发生这种情况时,客户机堆栈可以做出适当的反应,例如显示记录详细信息并询问用户她想强制更新(在这种情况下,可以简单地更新最后一次更新的值)或放弃她的本地更改。

image
image

异步类型二:安装模块异步;
image

描述:在实际生产环境中,会出现系统运行时,安装模块的情况。这时,模块会把一些默认的值写入数据库,但没有更新缓存。

【因此,需要强制添加缓存更新方法】

为了保障:ODOO 在以下方法中,添加为了更新缓存,_cache.update

image

create 方法
new 方法
write 方法
_prefetch_field 方法

image
image
image

目录
相关文章
|
存储 JSON JavaScript
VUE2(七)VUE配置.env文件使用
公司的项目是基于vue2搭建的。 之前一直是采用一个.env文件来存储变量,然后在打包的时候修改.env文件中对应的变量的值。 但是这样做现阶段有两个小问题:
940 0
|
Linux iOS开发 MacOS
CrossOver23中文永久免费版MacOS平台快速运行Windows软件
CrossOver是一款可以让Mac和Linux系统中正常运行Windows软件的应用程序。它不像虚拟机一样需要安装Windows系统之后才可以安装Windows的应用程序,这一方式给大多数用户带来了方便。通过CrossOver实现跨平台的文件复制粘贴,使Mac/Linux系统与Windows应用良好结合。CrossOver下载:http://t.csdn.cn/Ixdq6
4653 0
CrossOver23中文永久免费版MacOS平台快速运行Windows软件
|
前端开发 JavaScript 关系型数据库
若依框架------后台路由数据是如何转换为前端路由信息的
若依框架------后台路由数据是如何转换为前端路由信息的
1856 0
|
Linux C语言 内存技术
Linux下使用alsa-lib库完成音频开发: 实现放音和录音(从声卡获取PCM数据保存、向声卡写PCM数据输出)
Linux下使用alsa-lib库完成音频开发: 实现放音和录音(从声卡获取PCM数据保存、向声卡写PCM数据输出)
1881 0
|
数据库 数据安全/隐私保护 开发者
Odoo 15开发手册第一章 使用开发者模式快速入门
Odoo提供了一个快速应用开发框架,尤其适合构建商业应用。这类应用通常用于保存业务记录和工作流。Odoo 不仅简化了这类应用的构建,还提供了看板、日历、图表等视图的丰富组件,用于创建难以抗拒的用户界面。
1425 3
Odoo 15开发手册第一章 使用开发者模式快速入门
|
存储 Java 测试技术
ClickHouse Keeper: 一个用 C++ 编写的 ZooKeeper 替代品
ClickHouse Keeper: 一个用 C++ 编写的 ZooKeeper 替代品介绍
71420 34
ClickHouse Keeper: 一个用 C++ 编写的 ZooKeeper 替代品
|
11月前
|
网络协议 应用服务中间件 网络安全
odoo17在线聊天报错提示 Couldn‘t bind the websocket...
当 Odoo 17 报错 "Couldn't bind the websocket..." 时,通过检查和配置 WebSocket 端口、防火墙规则、代理服务器以及 Odoo 配置文件,可以有效解决此问题。确保每一步操作准确无误,最终重启相关服务,使配置生效。希望这些步骤能帮助您快速恢复 Odoo 的在线聊天功能。
410 1
|
前端开发 JavaScript 测试技术
React 中集成 Chart.js 图表库
本文介绍了如何在 React 项目中集成 Chart.js 创建动态图表,涵盖基础概念、安装步骤、代码示例及常见问题解决方法,帮助开发者轻松实现数据可视化。
358 11
|
存储 SQL 算法
跑批为什么这么难
业务系统产生的明细数据需经加工处理以支持企业经营,此过程称作“跑批”,常在夜间进行以免影响生产系统。跑批任务涉及大量数据及复杂计算,导致耗时较长。开源计算引擎SPL可直接基于文件系统计算,提供更优算法与存储机制,显著提升跑批效率。例如,L银行贷款协议跑批任务从2小时缩短至10分钟,性能提高12倍;P保险公司车险业务的历史保单关联任务从近2小时缩短至17分钟,速度提升近7倍;T银行贷款跑批任务提速204倍。
|
Ubuntu 应用服务中间件 网络安全
Ubuntu 22.04环境下为Odoo开启80端口的方法
通过以上步骤,你应该能够在Ubuntu 22.04环境下为Odoo开启80端口。访问你的域名时,Nginx会将请求代理到Odoo,允许你通过80端口访问Odoo应用。
486 1