diff options
| author | Christophe Simonis <chs@openerp.com> | 2010-11-10 16:04:48 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@openerp.com> | 2010-11-10 16:04:48 +0100 |
| commit | f331f33049f4e13832fd21d3afb6d60f800ae7b0 (patch) | |
| tree | dc754b77b5110a20270c57e235141002163dcf5b | |
| parent | d113f6e684dfa80caed52a5e6cfcaf410df9639f (diff) | |
[IMP] base: add cron job to autovacuum osv_memory objects
bzr revid: chs@openerp.com-20101110150448-chvand3pl617r2rr
| -rw-r--r-- | bin/addons/base/ir/__init__.py | 1 | ||||
| -rw-r--r-- | bin/addons/base/ir/ir.xml | 15 | ||||
| -rw-r--r-- | bin/addons/base/ir/osv_memory_autovacuum.py | 36 |
3 files changed, 52 insertions, 0 deletions
diff --git a/bin/addons/base/ir/__init__.py b/bin/addons/base/ir/__init__.py index 343b50a6998..145a167fdc2 100644 --- a/bin/addons/base/ir/__init__.py +++ b/bin/addons/base/ir/__init__.py @@ -34,6 +34,7 @@ import ir_exports import workflow import ir_rule import wizard +import osv_memory_autovacuum # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: diff --git a/bin/addons/base/ir/ir.xml b/bin/addons/base/ir/ir.xml index cb9b7a6d5bf..e3475faf721 100644 --- a/bin/addons/base/ir/ir.xml +++ b/bin/addons/base/ir/ir.xml @@ -1868,5 +1868,20 @@ <menuitem action="act_ir_actions_todo_form" id="menu_ir_actions_todo_form" parent="next_id_11" groups="base.group_extended" sequence="20"/> + + + + <record model="ir.cron" id="cronjob_osv_memory_autovacuum"> + <field name='name'>AutoVacuum osv_memory objects</field> + <field name='interval_number'>30</field> + <field name='interval_type'>minutes</field> + <field name="numbercall">-1</field> + <field name="active">True</field> + <field name="doall" eval="False" /> + <field name="model">osv_memory.autovacuum</field> + <field name="function">power_on</field> + <field name="args">()</field> + </record> + </data> </openerp> diff --git a/bin/addons/base/ir/osv_memory_autovacuum.py b/bin/addons/base/ir/osv_memory_autovacuum.py new file mode 100644 index 00000000000..b2ab938d740 --- /dev/null +++ b/bin/addons/base/ir/osv_memory_autovacuum.py @@ -0,0 +1,36 @@ +# -*- coding: utf-8 -*- +############################################################################## +# +# OpenERP, Open Source Management Solution +# Copyright (C) 2010 OpenERP s.a. (<http://openerp.com>). +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as +# published by the Free Software Foundation, either version 3 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +############################################################################## + +from osv import osv +from osv.orm import orm_memory + +class osv_memory_autovacuum(osv.osv_memory): + _name = 'osv_memory.autovacuum' + + def power_on(self, cr, uid, context=None): + for model in self.pool.obj_list(): + obj = self.pool.get(model) + if isinstance(obj, orm_memory): + obj.vaccum(cr, uid) + return True + +osv_memory_autovacuum() + |
