一、在界面中如何配置odoo定時任務
在設置--》技術--》自動化--》安排的動作 目錄下進行相應的配置
二、定時任務模型
Odoo中內置了一個定時任務模型 ir.cron ,它定義了一套 定時、自動 執行的規則。
我們可以創建 ir.cron 的模型記錄,一條記錄就是一個定時任務。
三、創建定時記錄
1)前置准備:在業務模型中定義要定時執行的函數
這個就是一般數據模型的函數定義,沒什么不同的。
2)通過data文件,創建一條定時任務記錄(往ir.cron模型插入一條記錄)
<record id="ir_cron_scheduler_XXX" model="ir.cron"> <field name="name"></field> <field name="user_id" ref="base.user_root"/> <field name="interval_number"></field> <field name="interval_type"></field> <field name="numbercall"></field> <field name="doall" eval="False" /> <field name="model" eval="要定時運行的函數所在模型名"/> <field name="function" eval="'要定時執行的函數名'" /> </record>
字段詳解:
1)name
定時任務名稱.
2)user_id
執行定時任務的用戶,不同的用戶是有不同權限的,為了保證能有足夠權限執行定時任務,一般這里就是base.user_root
3)interval_number
任務執行的頻次,和interval_type字段一起決定了任務執行的間隔時間,比如interval_number為2,interval_type為minutes,就是任務每2分鍾執行一次。
4)interval_type
任務執行頻次的單位,可選項有: minutes,hours,days,work_days,weeks,months,意思很好理解,work_days是星期幾執行。
5)numbercall
循環運行的次數,比如你填10,那么任務執行10次后將不再執行,這里-1代表一直執行下去。
6)doall
如果在服務器重啟期間錯過了執行時機,是否再次補充執行。
7)model
任務方法所在模型。
8)function
任務方法,與model一起決定了任務時機到來時,具體調用哪個模型的哪個方法執行。