odoo数据库并发更新could not serialize access due to concurrent update错误问题


问题:

  1. 为啥odoo系统最近经常跳出来  could not serialize access due to concurrent update 这个并发错误啊,执行sql 或者 系统自带的 代码时都有可能会有这个问题


网友回答:

  1. 这个就得从底层的机制说了,就是因为你别的地方一直把数据库某个资源占用着,然后这边一直尝试去使用,但是一直请求不到,这个时候他就说,靠,老子不干了,报个这个错给你看
  2. 也有可能批处理的东西或者长事务太多,锁的数据过多了,这个就要梳理拆分事务,可能会涉及到流程调整




代码 就是需要先生成 入库单-销售订单-出库单(更新库存 这时候就报错了)

报错:UPDATE "stock_quant" SET "reserved_quantity"='2995.00',"write_date"='2024-08-28 07:13:58.252696',"write_uid"=4 WHERE id IN (8089)



报错是stock_quant的,这错误就是多人操作了




写表用异步队列,就不会有问题了



celery + redis 分流了,还是时不时的会有这个问题,比以前 少多了,但是 还是不能彻底杜绝这个问题,并发问题是杜绝不了的,只能减少



并发问题,odoo要高主频服务器,低主频的服务器一定会有这个问题




目前办法:

你目前的情况可以申请一台4核8G的,变成应用服务器,目前这台把odoo的应用关掉,性能全部给到db。然后db这台切到内网,新的应用服务器放到外网。这样安全、性能都有了


设置 pgsql的最大链接数量 是不是也有用啊,默认是100,我改成 500






与服务器硬件性能有关了



总结:

提升服务器性能,添加服务器



odoo数据库并发更新could not serialize access due to concurrent update错误问题
欧度卜永 2024年8月30日
标签
我们的博客
存档
odoo上传图片字段文件过大提示连接断开尝试重新连接问题
nginx反向代理client_max_body_size参数控制