def process(self): self.logger.info('performer : [started]') while True: fp = open(self.cf["performer.mkfifo.path"], 'r') try: code = fp.read() finally: fp.close() #self.logger.info('Received code from the FIFO file. - code=%s' % code) session = self.db.get_session() m_jgs = jobgroup_findbytype_status(session, JOBGROUP_TYPE['SERIAL']) session.close() #self.logger.info('Queued the Job Group from the database. - Number of JobGroup=%d' % len(m_jgs)) self.logger.info('Activity Information. - [fifo_code=%s, type=serial, jobgroup_num=%d]' % (code, len(m_jgs))) if code == self.cf["performer.mkfifo.start.code"]: if 0 < len(m_jgs): for m_jg in m_jgs: try: w = SimpleWorker(self.cf, self.db, m_jg.id) w.process() except Exception, e: self.logger.info('Failed to perform the job group. Exceptions are not expected. - jobgroup_id=%d : %s' % (m_jg.id, str(e.args))) print >>sys.stderr, traceback.format_exc() t_logger = logging.getLogger('pysilhouette_traceback') t_logger.error(traceback.format_exc()) try: session = self.db.get_session() jobgroup_update(session, m_jg, JOBGROUP_STATUS['APPERR']) session.close() except: logger.error('Failed to change the status of the job group. - jobgroup_id=%d : %s' % (m_jg.id, str(e.args))) t_logger = logging.getLogger('pysilhouette_traceback') t_logger.error(traceback.format_exc()) else: #self.logger.info('No Job Group.') pass elif code == self.cf["performer.mkfifo.stop.code"]: self.logger.warning('Received stop code from the FIFO file. - code=%s' % code) return PROCSUCCESS
def run(self): self.logger = logging.getLogger('pysilhouette.worker.threadworker') try: self.process() except Exception, e: self.logger.error('%s - JobGroup execute failed. - jobgroup_id=%d : %s, JobGroup status=%s' \ % (self.getName(), self._jobgroup_id, str(e.args), JOBGROUP_STATUS['APPERR'])) t_logger = logging.getLogger('pysilhouette_traceback') t_logger.error(traceback.format_exc()) try: session = self._db.get_session() jobgroup_update(session, jobgroup_findbyid(session, self._jobgroup_id, self._cf['env.uniqkey']), JOBGROUP_STATUS['APPERR']) session.close() except: self.logger.error('JobGroup failed to update. - jobgroup_id=%d : %s, update status=%s' \ % (self._jobgroup_id, str(e.args), JOBGROUP_STATUS['APPERR'])) t_logger.error(traceback.format_exc())
def process(self): try: session = self._db.get_session() self.logger.debug('Session was obtained from the database. - session=%s' % session) self._m_jg = jobgroup_findbyid(session, self._jobgroup_id, self._cf['env.uniqkey']) if self._m_jg is None: return False jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['RUN']) # JobGroup UPDATE _m_jobs = job_findbyjobgroup_id(session, self._jobgroup_id, False) # order asc # action ret = False err = False try: ret = self._action(session, _m_jobs) except Exception, e: t_logger = logging.getLogger('pysilhouette_traceback') t_logger.info(traceback.format_exc()) self.logger.info('%s, Failed to perform the job action. Exceptions are not expected. - jobgroup_id=%d : %s, JobGroup status=%s' % (self.getName(), self._jobgroup_id, str(e.args), JOBGROUP_STATUS['APPERR'])) jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['APPERR']) err = True try: if err is False: if ret is True: # normal jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['OK']) else: # rollback jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['NG']) # JobGroup UPDATE try: self._rollback(session, _m_jobs) except Exception, e: self.logger.info('Failed to perform a rollback. Exceptions are not expected. - jobgroup_id=%d : %s' % (self._jobgroup_id, str(e.args))) t_logger = logging.getLogger('pysilhouette_traceback') t_logger.info(traceback.format_exc()) finally: # finish try: self._finish() except Exception, e: self.logger.info('Failed to perform the finish action. Exceptions are not expected. - jobgroup_id=%d : %s' % (self._jobgroup_id, str(e.args))) t_logger = logging.getLogger('pysilhouette_traceback') t_logger.info(traceback.format_exc())
def run(self): self.logger = logging.getLogger('pysilhouette.worker.threadworker') try: self.process() except Exception, e: self.logger.error('%s - JobGroup execute failed. - jobgroup_id=%d : %s, JobGroup status=%s' \ % (self.getName(), self._jobgroup_id, str(e.args), JOBGROUP_STATUS['APPERR'])) t_logger = logging.getLogger('pysilhouette_traceback') t_logger.error(traceback.format_exc()) try: session = self._db.get_session() jobgroup_update( session, jobgroup_findbyid(session, self._jobgroup_id, self._cf['env.uniqkey']), JOBGROUP_STATUS['APPERR']) session.close() except: self.logger.error('JobGroup failed to update. - jobgroup_id=%d : %s, update status=%s' \ % (self._jobgroup_id, str(e.args), JOBGROUP_STATUS['APPERR'])) t_logger.error(traceback.format_exc())
def process(self): try: session = self._db.get_session() self.logger.debug( 'Session was obtained from the database. - session=%s' % session) self._m_jg = jobgroup_findbyid(session, self._jobgroup_id, self._cf['env.uniqkey']) if self._m_jg is None: return False jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['RUN']) # JobGroup UPDATE _m_jobs = job_findbyjobgroup_id(session, self._jobgroup_id, False) # order asc # action ret = False err = False try: ret = self._action(session, _m_jobs) except Exception, e: t_logger = logging.getLogger('pysilhouette_traceback') t_logger.info(traceback.format_exc()) self.logger.info( '%s, Failed to perform the job action. Exceptions are not expected. - jobgroup_id=%d : %s, JobGroup status=%s' % (self.getName(), self._jobgroup_id, str( e.args), JOBGROUP_STATUS['APPERR'])) jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['APPERR']) err = True try: if err is False: if ret is True: # normal jobgroup_update(session, self._m_jg, JOBGROUP_STATUS['OK']) else: # rollback jobgroup_update( session, self._m_jg, JOBGROUP_STATUS['NG']) # JobGroup UPDATE try: self._rollback(session, _m_jobs) except Exception, e: self.logger.info( 'Failed to perform a rollback. Exceptions are not expected. - jobgroup_id=%d : %s' % (self._jobgroup_id, str(e.args))) t_logger = logging.getLogger( 'pysilhouette_traceback') t_logger.info(traceback.format_exc()) finally: # finish try: self._finish() except Exception, e: self.logger.info( 'Failed to perform the finish action. Exceptions are not expected. - jobgroup_id=%d : %s' % (self._jobgroup_id, str(e.args))) t_logger = logging.getLogger('pysilhouette_traceback') t_logger.info(traceback.format_exc())