问题:
- 为啥odoo系统最近经常跳出来 could not serialize access due to concurrent update 这个并发错误啊,执行sql 或者 系统自带的 代码时都有可能会有这个问题
网友回答:
- 这个就得从底层的机制说了,就是因为你别的地方一直把数据库某个资源占用着,然后这边一直尝试去使用,但是一直请求不到,这个时候他就说,靠,老子不干了,报个这个错给你看
- 也有可能批处理的东西或者长事务太多,锁的数据过多了,这个就要梳理拆分事务,可能会涉及到流程调整
代码 就是需要先生成 入库单-销售订单-出库单(更新库存 这时候就报错了)
报错: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
与服务器硬件性能有关了
总结:
提升服务器性能,添加服务器