原来的osv_memory(如今名为TransientModel)作了很大改进,如今已是一个特殊的普通osv(如今名为Model),这意味着它确实存在数据库里面,可是它会在使用事后自动删除(例如某个统计计算完毕或者某些记录已经建立了)。这个改进有如下好处:python
支持WSGI,能够在一个兼容WSGI的服务器上运行OpenERP server,再加上OpenERP几乎无态的特性。这意味着你能够在WSGI服务器上运行多个服务器进程:你终于能够用尽你的多核CPU!例如用 Gunicorn ,一切的维护都变得简单了,Gunicorn 将监控者进程。例如杀死一个已经挂起的进程,防止内存泄露影响系统。web
还有几件缩短建立账套时间的改进:能高效率使用框架加载翻译并写入。另外一个改进就是(转存和恢复)的账套时候的缓存。这些都在OpenERP online上实际使用过。数据库
在销售订单上作过性能测试:缓存
如今每个计划任务在后台都是生成一个线程,这样就不会由于一个计划任务在执行,就阻碍了另一个计划任务的执行。实现了在负载均衡的状况下多个服务器执行多个进程,每一个任务每次只会执行一次服务器
消除法语那些上面的声调,启动server的时候使用 --unaccent(对于国内用户可能不怎么须要这个 :D)多线程
6.1的对象自动实例化了,再也不须要显式调用
6.0.x负载均衡
class res_groups(osv.osv): _name = 'res.groups' _columns = { 'name': fields.char('Name'), } res_groups() class res_users(osv.osv): _name = 'res.users' _columns = { 'name': fields.char('Name'), 'group_ids': fields.many2many('Groups', 'res.groups'), } res_users() class res_groups2(osv.osv): _inherit= 'res.groups' _columns = { 'user_ids': fields.many2many('Users', 'res.users'), } res_groups2()
6.1框架
class res_groups(osv.osv): _name = 'res.groups' _columns = { 'name': fields.char('Name'), 'user_ids': fields.many2many('Users', 'res.users'), } class res_users(osv.osv): _name = 'res.users' _columns = { 'name': fields.char('Name'), 'group_ids': fields.many2many('Groups', 'res.groups'), }