編寫openerp模組**,在模組**中編寫執行程式! 此處為了方便,只是做了簡單的列印輸入, **如下:
# -*- coding: utf-8 -*-
from openerp.osv import osv
class
task_test
(osv.osv):
_auto = false
_name = "task.test"
defrun_scheduler
(self, cr, uid, args,context=none):
print
"test scheduler"
在模組中申明乙個***_data.xml檔案,***可以不為模組名稱,然後在openerp.py 檔案中的data屬性中加入***_data.xml即可,***_data.xml檔案的配置內容如下:
<?xml version="1.0" encoding="utf-8"?>
noupdate="1">
forcecreate="true"
id="ir_cron_scheduler_action"
model="ir.cron">
name="name">run mrp schedulerfield>
eval="true"
name="active"/>
name="user_id"
ref="base.user_root"/>
name="interval_number">1field>
name="interval_type">minutesfield>
name="numbercall">3field>
eval="false"
name="doall"/>
eval="'task.test'"
name="model"/>
eval="'run_scheduler'"
name="function"/>
eval="'(true,)'"
name="args"/>
record>
data>
openerp>
配置引數說明從上面我們可以看到配置的這個***_data.xml檔案在檔案的第4行配置了model="ir.cron"那麼我們在oe中開啟modelir_cron可以看到該class的_columns有如下字段:
_columns =
在ir_cron模組中主要有三個主要的方法分別為:_callback、_process_job、_acquire_job,在server.py檔案中有如下的python**:
def
cron_thread
(self, number):
while
true:
time.sleep(sleep_interval + number) # steve reich timing style
registries = openerp.modules.registry.registrymanager.registries
_logger.debug('cron%d polling for jobs', number)
for db_name, registry in registries.items():
while
true
and registry.ready:
acquired = openerp.addons.base.ir.ir_cron.ir_cron._acquire_job(db_name)
ifnot acquired:
break
到此呼叫過程就清楚了,server先呼叫_acquire_job方法,_acquire_job會根據dbname獲取任務執行的相關資料、例如獲取資料操作cr物件,要執行的jobs等,例如:
db = openerp.sql_db.db_connect(db_name)
threading.current_thread().dbname = db_name
cr = db.cursor()
,這個**又幫我們了解到了如何獲取資料庫的cr物件。_acquire_job獲取相關資料之後,然後交給_process_job方法,該方法會去更新任務的下一次執行時間等資料,然後交由_callback方法,有興趣的可以去讀一下ir_cron和server的原始碼。 Odoo定時任務 自動任務)
odoo中內建了乙個定時任務模型 ir.cron 它定義了一套 定時 自動 執行的規則。我們可以建立 ir.cron 的模型記錄,一條記錄就是乙個定時任務。1 前置準備 在業務模型中定義要定時執行的函式 這個就是一般資料模型的函式定義,沒什麼不同的。2 通過data檔案,建立一條定時任務記錄 往ir...
Spring Boot定時任務的使用方法
scheduled 定時任務器 是 spring3.0 以後自帶的乙個定時任務器。引入spring座標 org.springframeworkgroupid spring context supportartifactid dependency 啟動類上開啟定時任務的使用 enableschedul...
Spring定時任務的多種使用方法總結
這裡使用的是spring2.5,需要的jar包 spring.jar spring2.5的完全包 quartz all 1.6.0.jar 還需commons jar。方法一 任務排程工作類 public class clock extends timertask 應用上下文xml中的具體配置如下 ...