为什么odoo日程安排自动化不起作用 data.xml mymod.py data.xml

问题描述

我当前创建了一个与cronjob一起工作的模块。我已经按照从网上找到的代码和步骤来设置cronjob,但是它不能像在线显示的结果那样工作。我发现cronjob确实运行了,但是没有调用我在ir.cron中声明的方法,所以我不确定这是我做错的任何步骤。下面是我的示例代码

data.xml

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data noupdate="1">
        <record id="ir_cron_test_cronjob" model="ir.cron">
            <field name="name">Test Cronjob</field>
            <field name="model_id" ref="model_mymod_testingmodel" />
            <field name="user_id" ref="base.user_root"/>
            <field name="state">code</field>
            <field name="code">model.testing_method()</field>
            <field name="interval_number">1</field>
            <field name="interval_type">minutes</field>
            <field name="numbercall">-1</field>
            <field name="doall" eval="False" />
            <field name="active" eval="True" />                    
        </record>
    </data>
</openerp>

mymod.py

from odoo import models,api,fields,_
import requests

class TestingModel(models.Model):
    _name="mymod.testingmodel"

    @api.model
    def testing_method(self):
        print("Enter testing_method")
        requests.get("http://localhost/testing/simple_log.PHP?text=odoo13")

解决方法

我将我的案例的 noupdate 值更改为0解决了我的问题。根据Kenly的解释, noupdate =“ 1” 仅适用于cron一次。

data.xml

<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data noupdate="0">
        <record id="ir_cron_test_cronjob" model="ir.cron">
            <field name="name">Test Cronjob</field>
            <field name="model_id" ref="model_mymod_testingmodel" />
            <field name="user_id" ref="base.user_root"/>
            <field name="state">code</field>
            <field name="code">model.testing_method()</field>
            <field name="interval_number">1</field>
            <field name="interval_type">minutes</field>
            <field name="numbercall">-1</field>
            <field name="doall" eval="False" />
            <field name="active" eval="True" />                    
        </record>
    </data>
</openerp>