Cron Job là một công việc được thực hiện vào một thời điểm cụ thể hoặc theo một lịch trình định kỳ (ví dụ: mỗi 5 phút một lần). Trong loạt bài viết về Odoo, VinaSupport sẽ hướng dẫn bạn cách tạo một Cron Job trong một Odoo Module bằng việc sử dụng ir.cron.
Bước 1: Tạo file models/test_cron_job.py với nội dung như sau
from odoo import api, fields, models from datetime import datetime import os class TestCronJob(models.Model): _name = 'test.cron.job' @staticmethod def run(): os.system("echo 'Test Cron: %s' > /tmp/test.txt" % datetime.now())
Import nó vào vào file models/__init__.py
from . import test_cron_job.py
Bước 2: Tạo file data/ir_cron_test_cron_job.xml với nội dung như sau:
<openerp> <data> <record id="ir_cron_test_cron_job" model="ir.cron" forcecreate="True"> <field name="name">Test Cron Job</field> <field name="model_id" ref="model_test_cron_job"/> <field name="state">code</field> <field name="code">model.run()</field> <field name="user_id" ref="base.user_root"/> <field name="interval_number">1</field> <field name="interval_type">minutes</field> <field name="numbercall">-1</field> <field name="doall" eval="True"/> <!-- <field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 00:00:01')"/>--> </record> </data> </openerp>
Sau đó import nó vào file __manifest__.py
... # always loaded 'data': [ 'data/ir_cron_test_cron_job.xml' ], ...
Cuối cùng vào mục Apps để nâng cấp module của bạn.
Kết quả: