Open-erp8的启动过程

1、主程序 

openerp/cli/server.py

def main(args):

    check_root_user()  #检查 root 用户,如是 root 则不能运行

    openerp.tools.config.parse_config(args) #配置文件处理: openerp-server.conf

    check_postgres_user()  #检测 postgres 用户

    report_configuration() #报表配置

    config = openerp.tools.config

    if config["test_file"]:

        config["test_enable"] = True

    if config["translate_out"]:

        export_translation()

        sys.exit(0)

    if config["translate_in"]:

        import_translation()

        sys.exit(0)

    # This needs to be done now to ensure the use of the multiprocessing

    # signaling mecanism for registries loaded with -d

    if config['workers']:

        openerp.multi_process = True

    preload = []

    if config['db_name']:   #如果配置了 db_name 在配置文件 , 则加载对应的 erp-module

        preload = config['db_name'].split(',')

    stop = config["stop_after_init"]

    setup_pid_file()

    rc = openerp.service.server.start(preload=preload, stop=stop)  #启动 server 

    

    sys.exit(rc)

2、 web 模块

openerp.service.server.start(preload=preload, stop=stop)  #启动 server 

启动 web , ( httpd, MVC) 等 ,等待web服务

3、Server 模块

openerp/service/server.py

提供服务,包括: http request 处理 等

4、dao模块

sql_db.py

class Cursor(object): 用这个对象操作 数据库。 Cursor 在参数中一般写作  cr , 代表  transaction 。

5、log 模块

用 python 库, logging 。由 netsvr.py 模块初始化。

def init_logger():

用 log 跟踪 运行。

猜你喜欢

转载自iwin.iteye.com/blog/2118152