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
Exemple #2
0
    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
Exemple #3
0
    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
Exemple #4
0
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)
Exemple #5
0
    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
Exemple #7
0
    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
Exemple #8
0
 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