def _ready_for_work(self):
        """
        Method: _ready_for_work
        Description: 父类实现方法,注册MOC对象
        Parameter: 无
        Return: 0,成功
                其他,失败
        Others:
        """
        bf.BasicApp._ready_for_work(self)

        # Reister MOC object
        conn_info = oradb.ConnectionInfo(**db_cfg_info.get_configure(db_cfg_info.ORACLE_SYNC_CON_NAME))
        self.__connection_pool = DBConnectionPool()
        self.__connection_pool.create_connection(db_cfg_info.ORACLE_SYNC_CON_NAME
                                            , conn_info
                                            , oradb.create_connection
                                            , 10)

        mit_manager = mit.Mit()
        mit_manager.open_oracle(**db_cfg_info.get_configure(db_cfg_info.ORACLE_DEFAULT_CON_NAME))
        with self.get_connection(db_cfg_info.ORACLE_SYNC_CON_NAME) as db_conn:
            db_sync_event_manager = DBSyncEventManager(db_conn)
            db_sync_event_manager.remove_schema()
            db_sync_event_manager.create_schema()

            testdir = os.path.join(self.get_app_top_path(), 'moc_def', 'moc_test')
            sys.path.append(testdir)
            import TestAntenna
            import TestPhysicalReader
            mit_manager.regist_moc(TestAntenna.TestAntenna, TestAntenna.TestAntennaRule)
            mit_manager.regist_moc(TestPhysicalReader.TestPhysicalReader, TestPhysicalReader.TestPhysicalReaderRule)
            for i in xrange(1, int(math.ceil(float(EVENTS_NUM)/5)) + 1):
                ta = TestAntenna.TestAntenna()
                ta.readerId = 'readerId-%d' % i
                mit_manager.rdm_add(ta)
                ta.ChannelIndex = 99
                mit_manager.rdm_mod(ta)
                mit_manager.rdm_remove(ta)

                reader = TestPhysicalReader.TestPhysicalReader()
                reader.readerId = 'readerId-%d' % i
                mit_manager.rdm_add(reader)
                mit_manager.rdm_remove(reader)
            #db_sync_event_manager.add_full_event()
            
        return 1
Esempio n. 2
0
    def _ready_for_work(self):
        """
        Method: _ready_for_work
        Description: 父类实现方法,注册MOC对象
        Parameter: 无
        Return: 0,成功
                其他,失败
        Others:
        """
        tracelog.info('_ready_for_work started.')
        bf.BasicApp._ready_for_work(self)

        # 创建数据库连接
        self.__connection_pool = DBConnectionPool()
        conn_info = oradb.ConnectionInfo(**db_cfg_info.get_configure(db_cfg_info.ORACLE_DEFAULT_CON_NAME))        
        self.__connection_pool.create_connection(db_cfg_info.ORACLE_DEFAULT_CON_NAME
                                            , conn_info
                                            , oradb.create_connection
                                            , 5)
        conn_info = oradb.ConnectionInfo(**db_cfg_info.get_configure(db_cfg_info.ORACLE_SYNC_CON_NAME))        
        self.__connection_pool.create_connection(db_cfg_info.ORACLE_SYNC_CON_NAME
                                            , conn_info
                                            , oradb.create_connection
                                            , 1)
        
                                            
        with self.get_connection(db_cfg_info.ORACLE_SYNC_CON_NAME) as db_conn:
            db_sync_event_manager = DBSyncEventManager(db_conn)
            db_sync_event_manager.create_schema()

        # 加载所有MOC对象
        curdir = os.path.join(self.get_app_top_path(), 'moc_def')
        DBSyncUtil.load_mocs(curdir, self.__synchronized_mocs)
        self.__init_moc_data_to_sync_tbl_sqls()
        
        # Register db sync worker
        self.register_worker(db_sync_worker.DBSyncWorker())
        tracelog.info('_ready_for_work ended.')
        
        return 0