def search_key(self, param): """ 查询业务配置 通过key值 :return: """ try: if not param: self.logger.info("【查询业务配置】请求参数为为空,流程结束") return False """查询redis""" result = BusinessUtil.get_redis_by_key( busi_config.BUSI_BASE_CONF_REDIS_KEY) if not result: """查询数据库""" _db = MySqlHelper() result = _db.fetch_all(busi_base_conf_sql.search, None) else: """转化数据""" result = json.loads(result) """存储到redis""" BusinessUtil.set_redis_by_key(busi_config.BUSI_BASE_CONF_REDIS_KEY, result, busi_config.REDIS_CACHE_TIME) """遍历结果""" busi_base_list = [] for item in result: if item.get("busiKey") != param: continue busi_base_list.append(item) break if not busi_base_list: return False return busi_base_list[0] except Exception as e: self.logger.error("【查询业务配置】查询异常信息为:%s" % traceback.format_exc()) return False
def search(self, task_code): """ 查询有效模板数据 :param task_code: :return: """ try: template_code = self.search_template_code(task_code) """未查到模板编码""" if not template_code: return False """查询redis""" template_redis_key = "%s_%s" % (template_code, busi_config.TEMPLATE_EXT_REDIS_KEY) result = BusinessUtil.get_redis_by_key(template_redis_key) if result: return result _db = MySqlHelper() result = _db.fetch_all(template_sql.search, template_code) """如果未查到值""" if not result: return False """redis入库""" BusinessUtil.set_redis_by_key(template_redis_key, result, busi_config.REDIS_CACHE_TIME) return result except Exception as e: self.logger.error("【查询有效服务器】查询异常信息为:%s" % traceback.format_exc()) return False
def search_lock_domain_name(self): """ 查询域名状态 :return: """ try: """查询redis""" result = BusinessUtil.get_redis_by_key( busi_config.LOCK_ACCOUNT_REDIS_KEY) if result: return result """查询数据库""" _db = MySqlHelper() result = _db.fetch_one( send_email_account_sql.search_lock_domain_name) if not result: return False """获取域名""" domain_name = result.get("domainName", "") """如果不为空 则添加到redis""" if domain_name: BusinessUtil.set_redis_by_key( busi_config.LOCK_ACCOUNT_REDIS_KEY, domain_name, busi_config.REDIS_CACHE_TIME) return domain_name except Exception as e: self.logger.error("【查询发送邮箱账号】查询异常信息为:%s" % traceback.format_exc()) return False
def consume_token(*keysValue): """ 消费队列 :param keysValue: :return: """ item = keysValue[0] result = BusinessUtil.get_redis_by_key(item.get("userName")) if type(result) == str: result = json.loads(result) """读取令牌""" token_result = BusinessUtil.consume_token(result) if not token_result: item["is_smtp"] = False else: """设置新值""" item["is_smtp"] = BusinessUtil.set_redis_reset_time_ex(item.get("userName"), token_result)
def search_key(self, param): """ 查询黑名单 通过content :return: """ try: if not param: return False """从redis读取字段""" result = BusinessUtil.get_redis_by_key(param) if result: return result """从数据库内查询""" _db = MySqlHelper() result = _db.fetch_all(black_roll_call_sql.search_key) """未查到数据""" if not result: return False black_dict = {} """循环遍历数据""" for item in result: if not item: continue """生成分组""" item_key = BusinessUtil.get_verify_key(item.get("content")) if not item_key: continue if item_key in black_dict: black_dict[item_key].append(item.get("content")) else: black_dict.setdefault(item_key, []) black_dict[item_key].append(item.get("content")) """存入redis""" result_str = None for key in list(black_dict.keys()): item = black_dict[key] item_list = list(set(item)) item_str = ",".join(item_list) if key == param: result_str = item_str BusinessUtil.set_redis_reset_time_ex(key, item_str) return result_str except Exception as e: self.logger.error("【查询黑名单】查询异常信息为:%s" % traceback.format_exc()) return False
def search(self, param=None): """ 查询有效服务器数据 优先查询redis内数据,未查得后查询数据库数据并更新到redis内 :param param: :return: result """ try: result = BusinessUtil.get_redis_by_key( busi_config.SERVER_CONFIG_REDIS_KEY) if result: return json.loads(result) _db = MySqlHelper() result = _db.fetch_all(server_conf_sql.search, param) if not result: self.logger.info("【查询有效服务器】响应结果为空,结束流程") return False BusinessUtil.set_redis_by_key(busi_config.SERVER_CONFIG_REDIS_KEY, result, busi_config.REDIS_CACHE_TIME) return result except Exception as e: self.logger.error("【查询有效服务器】查询异常信息为:%s" % traceback.format_exc()) return False
def search_valid_account(self, server_ip): """ 查询发送有效账号(含剩余数量) 缓存5分钟 可能存在账号多发情况 :param server_ip: :return: """ try: if not server_ip: self.logger.info("【查询发送邮箱账号】传入参数有误,请确认") return False """选取发送账号""" valid_account_key = "%s_%s" % (server_ip.replace( ".", "_"), busi_config.VALID_ACCOUNT_REDIS_KEY) """查询redis""" result = BusinessUtil.get_redis_by_key(valid_account_key) if not result: """查询数据库""" _db = MySqlHelper() """设置当前日期""" timeStr = str( time.strftime('%Y-%m-%d', time.localtime(time.time()))) start = "%s 00:00:00" % timeStr end = "%s 23:59:59" % timeStr result = _db.fetch_all( send_email_account_sql.search_valid_account, (server_ip, start, end)) else: """转化数据""" result = json.loads(result) """判断非空""" if not result: return False BusinessUtil.set_redis_by_key(valid_account_key, result, busi_config.REDIS_CACHE_TIME) return result except Exception as e: self.logger.error("【查询发送邮箱账号】查询异常信息为:%s" % traceback.format_exc()) return False
def search_template_code(self, task_code): try: template_redis_key = "%s_%s" % (task_code, busi_config.TEMPLATE_REDIS_KEY) result = BusinessUtil.get_redis_by_key(template_redis_key) if not result: _db = MySqlHelper() result = _db.fetch_all(template_sql.search_template_code, task_code) if not result: return False """redis入库""" BusinessUtil.set_redis_by_key(template_redis_key, result, busi_config.REDIS_CACHE_TIME) else: if type(result) == str: result = json.loads(result) """筛选templateCode""" item = random.choice(result) return item.get("templateCode") except Exception as e: self.logger.error("【查询有效服务器】查询异常信息为:%s" % traceback.format_exc()) return False