odoo12里定时任务
Posted 1314520xh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了odoo12里定时任务相关的知识,希望对你有一定的参考价值。
以odoo12为例:
1. 定义定时任务属性
<record id="ir_cron_submit_auto_action" model="ir.cron">
<field name="name">自动动作</field>
<field name="model_id" ref="model_sale_order"/>
<field name="state">code</field>
<field name="code">model.submit_auto_action()</field> #任务方法,与mode_id一起决定了任务时机到来时,调用哪个方法执行。
<field name="interval_number">1</field> #任务执行的频次,和interval_type字段一起决定了任务执行的间隔时间
<field name="interval_type">days</field>
<field name="numbercall">-1</field> #(numbercall:循环运行的次数,比如你填10,那么任务执行10次后将不再执行,这里-1代表一直执行下去。)
<field eval="True" name="doall"/> #如果在服务器重启期间错过了执行时机,是否再次补充执行。
<field name="user_id" ref="base.user_root"/> #执行定时任务的用户,不同的用户是有不同权限的,为了保证能有足够权限执行定时任务,一般这里就是base.user_root
</record>
2. 在python中定义要定时执行的python代码
在相应模型的代码中定义相应的python方法,如下:
def submit_auto_action(self):
lines = self.env[‘sale.order‘].search([])
for r in lines:
r.write({‘state‘:‘done‘})
感谢原文参考链接:https://www.jianshu.com/p/76aa22c98476
以上是关于odoo12里定时任务的主要内容,如果未能解决你的问题,请参考以下文章
Windows Server2012/2018 定时任务设置及执行失败的解决方法