mdbq 4.2.19__py3-none-any.whl → 4.2.21__py3-none-any.whl

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/__version__.py CHANGED
@@ -1 +1 @@
1
- VERSION = '4.2.19'
1
+ VERSION = '4.2.21'
mdbq/redis/redis_cache.py CHANGED
@@ -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
- # 初始化数据源标记(默认为 none)
923
- g.data_source = 'none'
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数据进行缓存
mdbq/route/monitor.py CHANGED
@@ -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 utf8mb4_unicode_ci"
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 utf8mb4_unicode_ci"
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=utf8mb4_unicode_ci
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=utf8mb4_unicode_ci
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=utf8mb4_unicode_ci
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
- data_source = getattr(g, 'data_source', 'none')
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,
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: mdbq
3
- Version: 4.2.19
3
+ Version: 4.2.21
4
4
  Home-page: https://pypi.org/project/mdbq
5
5
  Author: xigua,
6
6
  Author-email: 2587125111@qq.com
@@ -1,5 +1,5 @@
1
1
  mdbq/__init__.py,sha256=Il5Q9ATdX8yXqVxtP_nYqUhExzxPC_qk_WXQ_4h0exg,16
2
- mdbq/__version__.py,sha256=r7N-NWrrPPVAUY93eumJUOnKKVt6StlWP43PDbmquBI,18
2
+ mdbq/__version__.py,sha256=IzawWUuPswzTS3m3I9j-FfXVS9TU3H6dXccjrg0afWE,18
3
3
  mdbq/auth/__init__.py,sha256=pnPMAt63sh1B6kEvmutUuro46zVf2v2YDAG7q-jV_To,24
4
4
  mdbq/auth/auth_backend.py,sha256=iLN7AqiSq7fQgFtNtge_TIlVOR1hrCSZXH6oId6uGX4,116924
5
5
  mdbq/auth/crypto.py,sha256=M0i4dRljJuE30WH_13ythA2QGKPXZm6TgpnYp6aHOzw,17431
@@ -27,15 +27,15 @@ mdbq/pbix/pbix_refresh.py,sha256=JUjKW3bNEyoMVfVfo77UhguvS5AWkixvVhDbw4_MHco,239
27
27
  mdbq/pbix/refresh_all.py,sha256=OBT9EewSZ0aRS9vL_FflVn74d4l2G00wzHiikCC4TC0,5926
28
28
  mdbq/redis/__init__.py,sha256=YtgBlVSMDphtpwYX248wGge1x-Ex_mMufz4-8W0XRmA,12
29
29
  mdbq/redis/getredis.py,sha256=vdg7YQEjhoMp5QzxygNGx5DQKRnePrcwPYgUrDypA6g,23672
30
- mdbq/redis/redis_cache.py,sha256=CGNkc0kf-BCyAgakpQj4OtdPE2GIsIdQktnD00jcGCs,46329
30
+ mdbq/redis/redis_cache.py,sha256=bOko_MhWKKBsZJVstQQ79u5XT69lzUDKCNHd5Fhx9_4,46084
31
31
  mdbq/route/__init__.py,sha256=BT_dAY7V-U2o72bevq1B9Mq9QA7GodwtkxyLNdGaoE8,22
32
32
  mdbq/route/analytics.py,sha256=dngj5hVwKddEUy59nSYbOoJ9C7OVrtCmCkvW6Uj9RYM,28097
33
- mdbq/route/monitor.py,sha256=EfB948tm3WoDYVSifjk4HvYLR4mQ11i5ssk-NMnCAL0,43234
33
+ mdbq/route/monitor.py,sha256=vF7dtKPa6_a2ch_9EHGec9pwpJeKVmZul_DBjjbi3UE,43500
34
34
  mdbq/route/routes.py,sha256=QVGfTvDgu0CpcKCvk1ra74H8uojgqTLUav1fnVAqLEA,29433
35
35
  mdbq/selenium/__init__.py,sha256=AKzeEceqZyvqn2dEDoJSzDQnbuENkJSHAlbHAD0u0ZI,10
36
36
  mdbq/selenium/get_driver.py,sha256=1NTlVUE6QsyjTrVVVqTO2LOnYf578ccFWlWnvIXGtic,20903
37
37
  mdbq/spider/__init__.py,sha256=RBMFXGy_jd1HXZhngB2T2XTvJqki8P_Fr-pBcwijnew,18
38
- mdbq-4.2.19.dist-info/METADATA,sha256=Q8_N3EfvmZH2I1NxiZCEK3iaHtZWgmAnJAIIHWg3r1w,364
39
- mdbq-4.2.19.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
40
- mdbq-4.2.19.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
41
- mdbq-4.2.19.dist-info/RECORD,,
38
+ mdbq-4.2.21.dist-info/METADATA,sha256=Sgle1dF9qmbkJ3OQODTwJ6eH7EqMjsrbUOnwkC3Q0js,364
39
+ mdbq-4.2.21.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
40
+ mdbq-4.2.21.dist-info/top_level.txt,sha256=2FQ-uLnCSB-OwFiWntzmwosW3X2Xqsg0ewh1axsaylA,5
41
+ mdbq-4.2.21.dist-info/RECORD,,
File without changes