odoo12:定时器任务
设置--技术-自动化-安排的动作
代码如下:
<record id="ir_cron_scheduler_action" model="ir.cron">
<field name="name">定时器</field>
<field name="model_id" ref="model_positions"/>
<field name="state">code</field>
<field name="code">model.check_valid_positions()</field>
<field name="interval_number">1</field>
<field name="interval_type">days</field>
<field name="numbercall">-1</field>
<field eval="False" name="doall"/>
</record>
让我们来分析下定时任务定义的代码,这里的ir.cron模块就是odoo为所有定时任务而专门准备的模型。换句话说往这个表里添加一行数据就是添加了一个定时任务。
name:
定时任务名称
model_id:
一般命名为:model加模块名
interval_number:
任务执行的频次,和interval_type字段一起决定了任务执行的间隔时间,比如这里为interval_number为2,interval_type为minutes,就是任务每2分钟执行一次。
interval_type:
任务执行频次的单位,可选项有: minutes,hours,days,work_days,weeks,months,意思很好理解,work_days是星期几执行。
numbercall:
循环运行的次数,比如你填10,那么任务执行10次后将不再执行,这里-1代表一直执行下去。
doall:
如果在服务器重启期间错过了执行时机,是否再次补充执行。
model:
任务方法所在模块
function:
任务方法,与model一起决定了任务时机到来时,调用哪个方法执行。