Exemple #1
0
 def get_session(self, retry_times: int=0):
     if retry_times > settings.RETRY_TIMES:
         # tools.lock_
         logger.error(
             f'<{self.name}>: \n- '
             f'访问次数 {settings.HOME_URL} 超过{settings.RETRY_TIMES}次,'
             f'获取cookies失败!')
         return False
     else:
         try:
             # tools.lock_
             logger.info(f'尝试访问 {settings.HOME_URL} 获得cookies')
             # 由于settings.HOME_HEADERS和settings.SEARCH_HEADERS使用了fake_useragent,这里重新赋值以确保在子线程中固定值
             home_headers = settings.HOME_HEADERS
             self.headers = settings.SEARCH_HEADERS
             self.session = requests.Session()
             self.session.get(settings.HOME_URL, headers=home_headers)
             return True
         except Exception as e:
             # tools.lock_
             logger.warning(f'<{self.name}>: \n- '
                 f'尝试访问 {settings.HOME_URL} 获取cookies失败,将重试'
                 f'\n- 错误信息: {e}')
             time.sleep(settings.REQUEST_GAP)
             return self.get_session(retry_times + 1)
Exemple #2
0
 def conncet_inst(self):
     GPIB_port = self.get_gpibport()
     if GPIB_port != "":
         self.inst = self.rm.open_resource(GPIB_port)
         return True
     else:
         logger.warning("Keithley2400 is not connected!")
         return False
Exemple #3
0
 def conncet_inst(self):
     GPIB_port = self.get_gpibport()
     if GPIB_port != "":
         self.inst = self.rm.open_resource(GPIB_port)
         return True
     else:
         logger.warning("Keithley2400 is not connected!")
         return False
Exemple #4
0
 def BeginTxn(self, ctx):
     '''Begin txn
     @param ctx: Context
     '''
     if self.TxnValid():
         logger.warning('rollback un-commited txn, startTS=%s',
                        self.txn.startTS)
         return ErrTxnAlreadyExists
     txn = self.store.Begin()
     self.txn = txn  # set by session
     return None
Exemple #5
0
 def get_gpibport(self):
     GPIB_port = ""
     rm_list = self.rm.list_resources()
     print rm_list
     for io in rm_list:
         if io.find('GPIB') != -1:
             GPIB_port = io
     if GPIB_port != "":
         logger.info("Find GPIB port:%s" % GPIB_port)
     else:
         logger.warning("CAN NOT FOUND GPIB PORT!")
     return GPIB_port
Exemple #6
0
 def get_gpibport(self):
     GPIB_port = ""
     rm_list = self.rm.list_resources()
     print rm_list
     for io in rm_list:
         if io.find('GPIB') != -1:
             GPIB_port = io
     if GPIB_port != "":
         logger.info("Find GPIB port:%s" % GPIB_port)
     else:
         logger.warning("CAN NOT FOUND GPIB PORT!")
     return GPIB_port
Exemple #7
0
    def updateTbTask(self, taskid, state):
        tasks = self.selectAllTasksById(taskid)
        if tasks == None or len(tasks) == 0:
            logger.warning("Warning, no task need to update status.")
            return

        for i in range(len(tasks)):
            sql = "UPDATE tb_task SET task_status=%s WHERE task_uuid='%d'" % (
                state, tasks[i].get('task_uuid'))
            with self.pool.cursor() as cursor:
                try:
                    cursor.execute(sql)
                except:
                    logger.error("Error: unable to update call task status.")
        return
Exemple #8
0
 def run(self):
     # tools.lock_
     logger.info(f'启动页面请求线程<{self.name}>')
     # 获取会话并判断是否成功
     if not self.get_session():
         # tools.lock_
         logger.error(f'<{self.name}>:\n- 获取会话失败,将退出线程')
     else:
         while True:
             try:
                 urls_info = self.urls_queue.get()
                 # 有可能存在所有页面数据不够需求数量
                 if urls_info is None:
                     break
                 retry_times = urls_info['retry_times']
                 url = urls_info['url']
                 city = urls_info['city']
                 break_flag = self.request(url, city, retry_times)
                 # 全部收集完成,则退出
                 if break_flag == 1:
                     break
                 # 相应城市收集完,则跳过
                 if break_flag == 2:
                     continue
             except Exception as e:
                 # tools.lock_
                 logger.warning(
                     f'<{self.name}>:'
                     f'\n- 请求页面 {url} 失败,后续将重试'
                     f'\n- 错误信息: {e}')
                 if retry_times <= settings.RETRY_TIMES:
                     self.urls_queue.put({
                         'url': url,
                         'city': city,
                         'retry_times': retry_times + 1})
             finally:
                 self.urls_queue.task_done()
     # 最终关闭会话
     self.session.close()
     # tools.lock_
     logger.info(f'页面请求线程<{self.name}>结束')
Exemple #9
0
 def get_sys_state(self):
     if Valve_Ctrl.get_pcb_state():
         self.pcb_sta.setPixmap(QtGui.QPixmap(":/icon/icons/dlb.png"))
     else:
         QtGui.QMessageBox.warning(self, u'警告', u"电路板未连接!")
         logger.warning("PCB isn't connected!")
         self.pcb_sta.setPixmap(QtGui.QPixmap(":/icon/icons/nodlb.png"))
     
     self.temprature = ai518p_api.get_now_temp()
     if self.temprature != "":
         self.now_T.setText(str(self.temprature))
         self.ai518_sta.setPixmap(QtGui.QPixmap(":/icon/icons/wky.png"))
     else:
         QtGui.QMessageBox.warning(self, u'警告', u"温控仪未连接!")
         logger.warning("AI518P isn't connected!")
         self.ai518_sta.setPixmap(QtGui.QPixmap(":/icon/icons/nowky.png"))
         
     instState = Keithley2400.conncet_inst()
     if instState:
         self.inst_sta.setPixmap(QtGui.QPixmap(":/icon/icons/yb.png"))     
     else:
         QtGui.QMessageBox.warning(self, u'警告', u"仪表2400未连接!")
         logger.warning("2400 isn't connected!")
         self.inst_sta.setPixmap(QtGui.QPixmap(":/icon/icons/noyb.png"))  
         
     self.flow_port = read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'port') 
     self.flow1_addr =  read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow1_addr')
     self.flow1_range =  int(read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow1_range'))
     self.flow2_addr =  read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow2_addr')
     self.flow2_range = int(read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow2_range'))
     self.flow3_addr =  read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow3_addr') 
     self.flow3_range =  int(read_config(qmdz_const.SYS_CONF_PATH, 'HMTS48', 'flow3_range')) 
Exemple #10
0
 def cleanup(self):
     '''
     @type cs: ColumnStore
     @return: ErrRetry if cleanup failed. else None
     '''
     logger.debug('[txn cleanup] startTS = %d, primary = %s, commitTS=%d' %
                  (self.startTS, self.us.primary, self.commitTS))
     for cs in self.us.GetColumnStores():
         if cs.primary is None:
             logger.debug("no mutations")
             continue
         db = self.store.GetMvccDB(cs.col)
         err = db.Rollback(cs.Keys(), self.startTS)
         if err:
             if not isinstance(err, ErrAlreadyCommitted):
                 logger.debug('cleanup err: %s', err.ERROR())
                 return ErrRetry
             else:
                 logger.warning(
                     'cleanup txn already commited, cleanup cancel')
                 return err
     return None
Exemple #11
0
 def request(self, url: str, city: str, retry_times: int):
     if tools.check_db_position_count():
         return 1
     if tools.check_db_position_count(city):
         return 2
     if retry_times <= settings.RETRY_TIMES:
         # tools.lock_
         logger.info(f'<{self.name}>: \n- 开始下载 {url} ...')
         content = self.session.get(
             url=url,
             headers=self.headers,
             cookies=self.session.cookies,
             # proxies=settings.PROXY
             )
         # 适当降低频率
         time.sleep(settings.REQUEST_GAP)
         if content.json()['state'] == 1:
             # tools.lock_
             logger.info(f'<{self.name}>: \n- 页面{url}下载完成!')
             self.page_queue.put(content)
         else:
             # tools.lock_
             logger.warning(
                 f'<{self.name}>: '
                 f'\n- 未获取到目标页面 {url},正在更换cookies重试')
             self.change_cookie()
             self.urls_queue.put((0, {
                 'url': unquote_plus(content.request.url),
                 'city': city,
                 'retry_times': retry_times + 1}))
     else:
         # tools.lock_
         logger.warning(
             f'<{self.name}>:'
             f'\n- 重复请求 {url} 超过{settings.RETRY_TIMES}次,'
             f'放弃该页面')
     return 0
Exemple #12
0
from mylog import logger

logger.warning('I warn you.')
logger.info('Please be informed that this is just a test.')
logger.error('Found error on your smile.')