odoo定时任务

python代码

# -*- encoding: utf-8 -*-

from openerp.osv import fields, osv, orm
import logging

_logger = logging.getLogger(__name__)

class auto_checkorder(osv.Model):
    _name = 'auto.checkorder'

    _columns = {
    }
    _defaults = {
    }

    def checkorder(self, cr, user, context={}):
        print 11111111

xml代码

<?xml version="1.0" ?>
<openerp>
    <data noupdate="1">
        <record id="ir_cron_backupscheduler0" model="ir.cron">
            <field eval="&quot;&quot;&quot;checkorder&quot;&quot;&quot;" name="function"/>
            <field eval="&quot;&quot;&quot;minutes&quot;&quot;&quot;" name="interval_type"/>
            <field name="user_id" ref="base.user_root"/>
            <field eval="&quot;&quot;&quot;Check Orders&quot;&quot;&quot;" name="name"/>
            <field eval="-1" name="numbercall"/>
            <field eval="&quot;&quot;&quot;2010-01-07 11:35:28&quot;&quot;&quot;" name="nextcall"/>
            <field eval="5" name="priority"/>
            <field eval="0" name="doall"/>
            <field eval="True" name="active"/>
            <field eval="1" name="interval_number"/>
            <field eval="&quot;&quot;&quot;auto.checkorder&quot;&quot;&quot;" name="model"/>
        </record>
    </data>
</openerp>
  • name 即该task的名称,由用户定义为该task主要的职责
  • user_id 对应res_users表,需要一个用户ID
  • active 是否激活该task,默认为True
  • interval_number 间隔时间,类型为integer
  • interval_type 执行task的周期类型,只能选择分钟、小时、天、周、月,可惜没有秒。
  • numbercall 方法调用多少次,-1则是没有限制
  • doall 如果任务执行时间错过了服务器重启时间是否重新执行任务
  • nextcall 下次的调用时间,我们不用配置,oe会自动计算
  • model 即模块名称
  • function 要执行的方法
  • args 传递的参数
  • priority 任务优先级别 0是最高级别,10是最低级别
posted @ 2016-08-25 10:20  屌丝IT男  阅读(1238)  评论(0编辑  收藏  举报