mdbq 4.2.19__tar.gz → 4.2.21__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of mdbq might be problematic. Click here for more details.
- {mdbq-4.2.19 → mdbq-4.2.21}/PKG-INFO +1 -1
- mdbq-4.2.21/mdbq/__version__.py +1 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/redis/redis_cache.py +4 -9
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/route/monitor.py +14 -11
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq.egg-info/PKG-INFO +1 -1
- mdbq-4.2.19/mdbq/__version__.py +0 -1
- {mdbq-4.2.19 → mdbq-4.2.21}/README.txt +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/auth/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/auth/auth_backend.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/auth/crypto.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/auth/rate_limiter.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/js/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/js/jc.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/log/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/log/mylogger.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/myconf/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/myconf/myconf.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/mysql/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/mysql/deduplicator.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/mysql/mysql.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/mysql/s_query.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/mysql/unique_.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/mysql/uploader.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/other/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/other/download_sku_picture.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/other/error_handler.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/other/otk.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/other/pov_city.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/other/ua_sj.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/pbix/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/pbix/pbix_refresh.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/pbix/refresh_all.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/redis/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/redis/getredis.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/route/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/route/analytics.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/route/routes.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/selenium/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/selenium/get_driver.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq/spider/__init__.py +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq.egg-info/SOURCES.txt +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq.egg-info/dependency_links.txt +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/mdbq.egg-info/top_level.txt +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/setup.cfg +0 -0
- {mdbq-4.2.19 → mdbq-4.2.21}/setup.py +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
VERSION = '4.2.21'
|
|
@@ -919,8 +919,8 @@ def flask_redis_cache(cache_key_func=None, ttl=1200, namespace="default",
|
|
|
919
919
|
# 如果没有Flask环境,直接执行原函数
|
|
920
920
|
return func(*args, **kwargs)
|
|
921
921
|
|
|
922
|
-
#
|
|
923
|
-
g.data_source = '
|
|
922
|
+
# 初始化数据源标记
|
|
923
|
+
g.data_source = 'mysql'
|
|
924
924
|
g.cache_hit = False
|
|
925
925
|
|
|
926
926
|
# 获取缓存系统
|
|
@@ -928,9 +928,7 @@ def flask_redis_cache(cache_key_func=None, ttl=1200, namespace="default",
|
|
|
928
928
|
|
|
929
929
|
# 如果缓存系统不可用,直接执行原函数
|
|
930
930
|
if not cache_system:
|
|
931
|
-
#
|
|
932
|
-
g.data_source = 'mysql'
|
|
933
|
-
g.cache_hit = False
|
|
931
|
+
# 直接查询数据库(无缓存系统)
|
|
934
932
|
return func(*args, **kwargs)
|
|
935
933
|
|
|
936
934
|
try:
|
|
@@ -967,10 +965,7 @@ def flask_redis_cache(cache_key_func=None, ttl=1200, namespace="default",
|
|
|
967
965
|
if not skip_cache_on_error:
|
|
968
966
|
raise
|
|
969
967
|
|
|
970
|
-
#
|
|
971
|
-
# 标记为 mysql 查询
|
|
972
|
-
g.data_source = 'mysql'
|
|
973
|
-
g.cache_hit = False
|
|
968
|
+
# 缓存未命中,执行原函数
|
|
974
969
|
result = func(*args, **kwargs)
|
|
975
970
|
|
|
976
971
|
# 如果结果是Flask Response对象,提取JSON数据进行缓存
|
|
@@ -123,7 +123,7 @@ class RouteMonitor:
|
|
|
123
123
|
with connection.cursor() as cursor:
|
|
124
124
|
cursor.execute(
|
|
125
125
|
f"CREATE DATABASE IF NOT EXISTS `{self.database}` "
|
|
126
|
-
f"DEFAULT CHARACTER SET utf8mb4 COLLATE
|
|
126
|
+
f"DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci"
|
|
127
127
|
)
|
|
128
128
|
cursor.execute(f"USE `{self.database}`")
|
|
129
129
|
finally:
|
|
@@ -145,7 +145,7 @@ class RouteMonitor:
|
|
|
145
145
|
except Exception:
|
|
146
146
|
cursor.execute(
|
|
147
147
|
f"CREATE DATABASE IF NOT EXISTS `{self.database}` "
|
|
148
|
-
f"DEFAULT CHARACTER SET utf8mb4 COLLATE
|
|
148
|
+
f"DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci"
|
|
149
149
|
)
|
|
150
150
|
cursor.execute(f"USE `{self.database}`")
|
|
151
151
|
|
|
@@ -195,7 +195,7 @@ class RouteMonitor:
|
|
|
195
195
|
INDEX `idx_用户标识` (`用户标识`),
|
|
196
196
|
INDEX `idx_时间_接口` (`请求时间`, `路由地址`(191)),
|
|
197
197
|
INDEX `idx_时间_数据源` (`请求时间`, `数据源`)
|
|
198
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=
|
|
198
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
199
199
|
COMMENT='API 访问日志表 - 记录每次请求的核心信息'
|
|
200
200
|
ROW_FORMAT=COMPRESSED;
|
|
201
201
|
""")
|
|
@@ -225,7 +225,7 @@ class RouteMonitor:
|
|
|
225
225
|
INDEX `idx_统计日期` (`统计日期`),
|
|
226
226
|
INDEX `idx_路由地址` (`路由地址`(191)),
|
|
227
227
|
INDEX `idx_日期_接口` (`统计日期`, `路由地址`(191))
|
|
228
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=
|
|
228
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
229
229
|
COMMENT='API 接口统计表 - 按小时汇总的接口性能数据';
|
|
230
230
|
""")
|
|
231
231
|
|
|
@@ -252,7 +252,7 @@ class RouteMonitor:
|
|
|
252
252
|
INDEX `idx_客户端ip` (`客户端ip`),
|
|
253
253
|
INDEX `idx_风险评分` (`风险评分`),
|
|
254
254
|
INDEX `idx_请求总数` (`请求总数`)
|
|
255
|
-
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=
|
|
255
|
+
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci
|
|
256
256
|
COMMENT='API ip 访问记录表 - ip 维度的访问统计';
|
|
257
257
|
""")
|
|
258
258
|
connection.commit()
|
|
@@ -506,8 +506,9 @@ class RouteMonitor:
|
|
|
506
506
|
if params_dict:
|
|
507
507
|
request_params = self.sanitize_params(params_dict)
|
|
508
508
|
|
|
509
|
-
# 获取数据源信息(从 g
|
|
510
|
-
|
|
509
|
+
# 获取数据源信息(从 g 对象中读取,由缓存装饰器 redis_cache 设置)
|
|
510
|
+
# 默认为 mysql(没有使用缓存装饰器的接口直接查询数据库)
|
|
511
|
+
data_source = getattr(g, 'data_source', 'mysql')
|
|
511
512
|
cache_hit = getattr(g, 'cache_hit', False)
|
|
512
513
|
|
|
513
514
|
# 构建请求数据字典
|
|
@@ -725,10 +726,6 @@ class RouteMonitor:
|
|
|
725
726
|
start_time = time.time()
|
|
726
727
|
g.request_start_time = start_time
|
|
727
728
|
|
|
728
|
-
# 收集请求数据
|
|
729
|
-
request_data = self.collect_request_data(request)
|
|
730
|
-
# request_id = request_data.get('请求id', 'unknown')
|
|
731
|
-
|
|
732
729
|
# 统计总请求数(线程安全)
|
|
733
730
|
with self._stats_lock:
|
|
734
731
|
self._stats['total_requests'] += 1
|
|
@@ -755,6 +752,9 @@ class RouteMonitor:
|
|
|
755
752
|
except Exception:
|
|
756
753
|
response_status = 200
|
|
757
754
|
|
|
755
|
+
# 在函数执行完成后收集请求数据(此时缓存装饰器已经设置了 g.data_source)
|
|
756
|
+
request_data = self.collect_request_data(request)
|
|
757
|
+
|
|
758
758
|
# 更新响应数据
|
|
759
759
|
response_data = {
|
|
760
760
|
'状态码': response_status,
|
|
@@ -785,6 +785,9 @@ class RouteMonitor:
|
|
|
785
785
|
end_time = time.time()
|
|
786
786
|
process_time = round((end_time - start_time) * 1000, 3)
|
|
787
787
|
|
|
788
|
+
# 在异常发生后收集请求数据
|
|
789
|
+
request_data = self.collect_request_data(request)
|
|
790
|
+
|
|
788
791
|
# 构建错误数据
|
|
789
792
|
error_data = {
|
|
790
793
|
'状态码': 500,
|
mdbq-4.2.19/mdbq/__version__.py
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
VERSION = '4.2.19'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|