Odoo16设置定时任务

odoo设置定时任务有两种方式

1、web界面

可用通过“设置”=> "技术” =>“自动化”=>“安排的动作” 进行手工设置。

2、xml文件

        <record model="ir.cron" id="hx_hr_update_person">
            <field name="name">从OA同步人员数据field>
            <field name="model_id" ref="hr.model_hr_employee"/>
            <field name="state">codefield>
            <field name="code">model.update_all_person()field>
            <field name="active" eval="True"/>
            <field name="interval_number">1field>
            <field name="interval_type">daysfield>
            <field name="numbercall">-1field>
            <field name="doall" eval="False"/>
            <field name="user_id">2field>
            <field name="nextcall" eval="(DateTime.now().replace(hour=17, minute=10) + timedelta(days=1)).strftime('%Y-%m-%d %H:%M:%S')" />
        record>

可以通过xml文件和web界面进行比较来加深理解。

3、踩过的坑

3.1 任务执行时间过长,超出odoo限制

超出限制后任务停止并且数据库事务也会回滚,然后服务重启。

2023-09-21 09:05:46,274 18071 WARNING odoo4 odoo.service.server: Thread  virtual real time limit (176/120s) reached. 
2023-09-21 09:05:46,274 18071 INFO odoo4 odoo.service.server: Dumping stacktrace of limit exceeding threads before reloading 

可用修改配置参数

limit_time_real = 1800

你可能感兴趣的:(Odoo16,odoo)