sycommon-python-lib 0.1.56b6__py3-none-any.whl → 0.1.56b7__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.
- sycommon/config/Config.py +16 -0
- sycommon/config/SentryConfig.py +13 -0
- sycommon/logging/kafka_log.py +185 -432
- sycommon/middleware/exception.py +10 -16
- sycommon/middleware/timeout.py +2 -1
- sycommon/middleware/traceid.py +67 -61
- sycommon/notice/uvicorn_monitor.py +32 -27
- sycommon/rabbitmq/rabbitmq_service.py +1 -1
- sycommon/sentry/__init__.py +0 -0
- sycommon/sentry/sy_sentry.py +34 -0
- sycommon/services.py +4 -0
- sycommon/synacos/nacos_service.py +101 -82
- {sycommon_python_lib-0.1.56b6.dist-info → sycommon_python_lib-0.1.56b7.dist-info}/METADATA +2 -1
- {sycommon_python_lib-0.1.56b6.dist-info → sycommon_python_lib-0.1.56b7.dist-info}/RECORD +17 -14
- {sycommon_python_lib-0.1.56b6.dist-info → sycommon_python_lib-0.1.56b7.dist-info}/WHEEL +0 -0
- {sycommon_python_lib-0.1.56b6.dist-info → sycommon_python_lib-0.1.56b7.dist-info}/entry_points.txt +0 -0
- {sycommon_python_lib-0.1.56b6.dist-info → sycommon_python_lib-0.1.56b7.dist-info}/top_level.txt +0 -0
|
@@ -9,7 +9,6 @@ import os
|
|
|
9
9
|
import yaml
|
|
10
10
|
import time
|
|
11
11
|
import atexit
|
|
12
|
-
import random
|
|
13
12
|
|
|
14
13
|
from sycommon.config.Config import Config, SingletonMeta
|
|
15
14
|
from sycommon.logging.kafka_log import SYLogger
|
|
@@ -30,9 +29,6 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
30
29
|
self._client_initialized = False # 客户端初始化状态
|
|
31
30
|
self._shutdown_event = threading.Event()
|
|
32
31
|
|
|
33
|
-
# 添加可重入锁用于状态同步
|
|
34
|
-
self._state_lock = threading.RLock()
|
|
35
|
-
|
|
36
32
|
# 配置参数
|
|
37
33
|
self.max_retries = self.nacos_config.get('maxRetries', 5)
|
|
38
34
|
self.retry_delay = self.nacos_config.get('retryDelay', 5)
|
|
@@ -62,6 +58,15 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
62
58
|
self.real_ip = self.get_service_ip(self.host)
|
|
63
59
|
self._long_term_retry_count = 0 # 长期重试计数器
|
|
64
60
|
|
|
61
|
+
# 监控线程相关
|
|
62
|
+
self._monitor_thread_started = False
|
|
63
|
+
self._monitor_thread_lock = threading.Lock()
|
|
64
|
+
self._state_lock = threading.RLock()
|
|
65
|
+
|
|
66
|
+
# 验证相关
|
|
67
|
+
self._verify_lock = threading.Lock()
|
|
68
|
+
self._last_verify_time = 0
|
|
69
|
+
|
|
65
70
|
# 轮询索引,用于在所有实例中进行轮询选择
|
|
66
71
|
self._round_robin_index = 0
|
|
67
72
|
self._round_robin_lock = threading.Lock() # 保护轮询索引的线程安全
|
|
@@ -90,7 +95,6 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
90
95
|
|
|
91
96
|
self.max_heartbeat_timeout = self.nacos_config.get(
|
|
92
97
|
'maxHeartbeatTimeout', 30)
|
|
93
|
-
self._last_successful_heartbeat = time.time()
|
|
94
98
|
# 连接监控检查间隔(新增配置,默认30秒,避免硬编码)
|
|
95
99
|
self.connection_check_interval = self.nacos_config.get(
|
|
96
100
|
'connectionCheckInterval', 30)
|
|
@@ -259,28 +263,50 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
259
263
|
return False
|
|
260
264
|
|
|
261
265
|
def verify_registration(self):
|
|
262
|
-
"""
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
+
"""多次验证服务是否成功注册(加锁防止重复执行)"""
|
|
267
|
+
# 新增:线程级别的单次执行锁(避免同一轮循环重复调用)
|
|
268
|
+
if self._verify_lock.locked():
|
|
269
|
+
SYLogger.warning("nacos:注册验证已在执行中,跳过重复调用")
|
|
270
|
+
return self.registered
|
|
271
|
+
|
|
272
|
+
with self._verify_lock:
|
|
273
|
+
# 冷却时间控制(避免短时间重复验证,15秒内不重复)
|
|
274
|
+
current_time = time.time()
|
|
275
|
+
if current_time - self._last_verify_time < self.heartbeat_interval:
|
|
276
|
+
return True
|
|
266
277
|
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
SYLogger.warning(f"nacos:第 {i+1} 次验证未找到注册实例")
|
|
278
|
+
success_count = 0
|
|
279
|
+
verify_count = self.registration_verify_count
|
|
280
|
+
SYLogger.info(
|
|
281
|
+
f"nacos:开始验证服务注册状态,共验证 {verify_count} 次,间隔 {self.registration_verify_interval} 秒")
|
|
272
282
|
|
|
273
|
-
|
|
274
|
-
time.sleep(self.registration_verify_interval)
|
|
283
|
+
self._last_verify_time = current_time # 更新最后验证时间
|
|
275
284
|
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
285
|
+
for i in range(verify_count):
|
|
286
|
+
# 调用去重后的 check_service_registered
|
|
287
|
+
if self.check_service_registered():
|
|
288
|
+
success_count += 1
|
|
289
|
+
|
|
290
|
+
if i < verify_count - 1:
|
|
291
|
+
# 可中断的等待,替代 sleep
|
|
292
|
+
self._shutdown_event.wait(
|
|
293
|
+
self.registration_verify_interval)
|
|
294
|
+
if self._shutdown_event.is_set():
|
|
295
|
+
SYLogger.warning("nacos:应用正在关闭,终止注册验证")
|
|
296
|
+
break
|
|
297
|
+
|
|
298
|
+
# 验证结果判断
|
|
299
|
+
pass_threshold = verify_count / 2
|
|
300
|
+
result = success_count >= pass_threshold
|
|
301
|
+
|
|
302
|
+
if result:
|
|
303
|
+
SYLogger.info(
|
|
304
|
+
f"nacos:服务注册验证成功,{success_count}/{verify_count} 次验证通过")
|
|
305
|
+
else:
|
|
306
|
+
SYLogger.error(
|
|
307
|
+
f"nacos:服务注册验证失败,仅 {success_count}/{verify_count} 次验证通过")
|
|
308
|
+
|
|
309
|
+
return result
|
|
284
310
|
|
|
285
311
|
def register_with_retry(self):
|
|
286
312
|
"""带重试机制的服务注册(基于实例列表检查)"""
|
|
@@ -517,11 +543,10 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
517
543
|
f"nacos:服务未注册,跳过心跳 - 线程ID: {thread_ident}")
|
|
518
544
|
consecutive_fail = 0
|
|
519
545
|
else:
|
|
520
|
-
# 发送心跳(
|
|
546
|
+
# 发送心跳(15秒超时)
|
|
521
547
|
success = self.send_heartbeat()
|
|
522
548
|
if success:
|
|
523
549
|
consecutive_fail = 0
|
|
524
|
-
self._last_successful_heartbeat = current_time
|
|
525
550
|
SYLogger.info(
|
|
526
551
|
f"nacos:心跳发送成功 - 时间: {current_time:.3f}, "
|
|
527
552
|
f"间隔: {self.heartbeat_interval}秒"
|
|
@@ -541,16 +566,12 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
541
566
|
SYLogger.error(
|
|
542
567
|
f"nacos:心跳异常: {str(e)}, 连续失败: {consecutive_fail}次")
|
|
543
568
|
|
|
544
|
-
|
|
545
|
-
next_run_time = current_time + self.heartbeat_interval
|
|
546
|
-
sleep_time = max(0, next_run_time - time.time()
|
|
547
|
-
) # 避免负数(处理耗时超过间隔的情况)
|
|
548
|
-
self._shutdown_event.wait(sleep_time) # 精准休眠至下次执行时间
|
|
569
|
+
self._shutdown_event.wait(self.heartbeat_interval)
|
|
549
570
|
|
|
550
571
|
SYLogger.info(f"nacos:心跳循环已停止 - 线程ID: {thread_ident}")
|
|
551
572
|
|
|
552
573
|
def send_heartbeat(self):
|
|
553
|
-
"""发送心跳并添加10
|
|
574
|
+
"""发送心跳并添加10秒超时控制(仅保留核心逻辑,移除重复日志)"""
|
|
554
575
|
if not self.ensure_client_connected():
|
|
555
576
|
SYLogger.warning("nacos:客户端未连接,心跳发送失败")
|
|
556
577
|
return False
|
|
@@ -585,9 +606,6 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
585
606
|
self._client_initialized = False # 强制重连
|
|
586
607
|
return False
|
|
587
608
|
|
|
588
|
-
# 检查心跳结果
|
|
589
|
-
if result_list[0]:
|
|
590
|
-
self._last_successful_heartbeat = time.time()
|
|
591
609
|
return result_list[0]
|
|
592
610
|
|
|
593
611
|
def _send_heartbeat_internal(self):
|
|
@@ -616,59 +634,60 @@ class NacosService(metaclass=SingletonMeta):
|
|
|
616
634
|
return self.ensure_client_connected()
|
|
617
635
|
|
|
618
636
|
def monitor_connection(self):
|
|
619
|
-
"""
|
|
637
|
+
"""优化的连接监控线程(彻底去重)"""
|
|
638
|
+
# 单例锁:防止重复启动
|
|
639
|
+
with self._monitor_thread_lock:
|
|
640
|
+
if self._shutdown_event.is_set() or self._monitor_thread_started:
|
|
641
|
+
SYLogger.warning("nacos:监控线程已启动/已关闭,拒绝重复启动")
|
|
642
|
+
return
|
|
643
|
+
self._monitor_thread_started = True
|
|
644
|
+
|
|
620
645
|
check_interval = self.connection_check_interval
|
|
621
|
-
|
|
622
|
-
|
|
646
|
+
SYLogger.info(
|
|
647
|
+
f"nacos:连接监控线程启动 - 线程ID: {threading.current_thread().ident}")
|
|
623
648
|
|
|
624
649
|
while not self._shutdown_event.is_set():
|
|
625
650
|
try:
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
retry_thread.start()
|
|
655
|
-
|
|
656
|
-
# 20%的概率执行深度检查
|
|
657
|
-
if random.random() < 0.2:
|
|
658
|
-
self.verify_registration()
|
|
659
|
-
|
|
660
|
-
# 每小时重置一次内部状态
|
|
661
|
-
if current_time - thread_start_time > 3600:
|
|
662
|
-
SYLogger.info("nacos:连接监控线程已运行1小时,重置内部状态")
|
|
663
|
-
thread_start_time = current_time
|
|
664
|
-
check_counter = 0
|
|
665
|
-
|
|
666
|
-
check_counter += 1
|
|
667
|
-
# 休眠指定时间
|
|
651
|
+
# 步骤1:检查客户端连接(仅在连接断开时重试)
|
|
652
|
+
if not self._client_initialized:
|
|
653
|
+
SYLogger.warning("nacos:客户端未连接,尝试重新初始化")
|
|
654
|
+
self.ensure_client_connected()
|
|
655
|
+
else:
|
|
656
|
+
# 步骤2:检查注册状态(仅检查一次,不重复调用)
|
|
657
|
+
current_registered = self.check_service_registered()
|
|
658
|
+
|
|
659
|
+
# 步骤3:仅在注册状态变化时,才触发验证+重新注册
|
|
660
|
+
with self._state_lock:
|
|
661
|
+
if current_registered != self.registered:
|
|
662
|
+
self.registered = current_registered
|
|
663
|
+
if not current_registered:
|
|
664
|
+
SYLogger.warning("nacos:服务实例未注册,触发单次重新注册")
|
|
665
|
+
# 启动单次重试线程(非循环)
|
|
666
|
+
retry_thread = threading.Thread(
|
|
667
|
+
target=self.register,
|
|
668
|
+
args=(True,),
|
|
669
|
+
daemon=True,
|
|
670
|
+
name="NacosSingleRetryThread"
|
|
671
|
+
)
|
|
672
|
+
retry_thread.start()
|
|
673
|
+
else:
|
|
674
|
+
# 仅在「从未注册→已注册」时验证一次
|
|
675
|
+
SYLogger.info("nacos:服务实例已注册,触发单次验证")
|
|
676
|
+
self.verify_registration()
|
|
677
|
+
|
|
678
|
+
# 优化2:固定休眠,避免逻辑耗时导致的间隔混乱
|
|
668
679
|
self._shutdown_event.wait(check_interval)
|
|
680
|
+
|
|
669
681
|
except Exception as e:
|
|
670
|
-
SYLogger.error(f"nacos:连接监控异常: {e}")
|
|
671
|
-
|
|
682
|
+
SYLogger.error(f"nacos:连接监控异常: {str(e)}")
|
|
683
|
+
# 异常时缩短休眠,快速恢复
|
|
684
|
+
self._shutdown_event.wait(5)
|
|
685
|
+
|
|
686
|
+
# 线程退出重置标记
|
|
687
|
+
with self._monitor_thread_lock:
|
|
688
|
+
self._monitor_thread_started = False
|
|
689
|
+
SYLogger.info(
|
|
690
|
+
f"nacos:连接监控线程退出 - 线程ID: {threading.current_thread().ident}")
|
|
672
691
|
|
|
673
692
|
def get_service_ip(self, config_ip):
|
|
674
693
|
"""获取服务实际IP地址"""
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: sycommon-python-lib
|
|
3
|
-
Version: 0.1.
|
|
3
|
+
Version: 0.1.56b7
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Requires-Python: >=3.11
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -21,6 +21,7 @@ Requires-Dist: psutil>=7.1.3
|
|
|
21
21
|
Requires-Dist: pydantic>=2.12.5
|
|
22
22
|
Requires-Dist: python-dotenv>=1.2.1
|
|
23
23
|
Requires-Dist: pyyaml>=6.0.3
|
|
24
|
+
Requires-Dist: sentry-sdk[fastapi]>=2.48.0
|
|
24
25
|
Requires-Dist: sqlalchemy[asyncio]>=2.0.45
|
|
25
26
|
Requires-Dist: starlette>=0.50.0
|
|
26
27
|
Requires-Dist: uvicorn>=0.40.0
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
command/cli.py,sha256=bP2LCLkRvfETIwWkVD70q5xFxMI4D3BpH09Ws1f-ENc,5849
|
|
2
2
|
sycommon/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
3
|
-
sycommon/services.py,sha256=
|
|
4
|
-
sycommon/config/Config.py,sha256
|
|
3
|
+
sycommon/services.py,sha256=vcO2vbe2U1CA4ykLdH1rnxgqUIouukE-wTRsjRl2kBI,11683
|
|
4
|
+
sycommon/config/Config.py,sha256=-LzOgnpA0GKgNexG-tmpLspkJipjtq2GcToaZbyGncg,3854
|
|
5
5
|
sycommon/config/DatabaseConfig.py,sha256=ILiUuYT9_xJZE2W-RYuC3JCt_YLKc1sbH13-MHIOPhg,804
|
|
6
6
|
sycommon/config/EmbeddingConfig.py,sha256=gPKwiDYbeu1GpdIZXMmgqM7JqBIzCXi0yYuGRLZooMI,362
|
|
7
7
|
sycommon/config/LLMConfig.py,sha256=yU-aIqePIeF6msfRVEtGq7SXZVDfHyTi6JduKjhMO_4,371
|
|
8
8
|
sycommon/config/MQConfig.py,sha256=_RDcmIdyWKjmgM5ZnriOoI-DpaxgXs7CD0awdAD6z88,252
|
|
9
9
|
sycommon/config/RerankerConfig.py,sha256=35sVwzus2IscvTHnCG63Orl2pC-pMsrVi6wAGDmOH3U,341
|
|
10
|
+
sycommon/config/SentryConfig.py,sha256=OsLb3G9lTsCSZ7tWkcXWJHmvfILQopBxje5pjnkFJfo,320
|
|
10
11
|
sycommon/config/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
12
|
sycommon/database/async_base_db_service.py,sha256=w6ONUiTtF4-bXRnkBt9QpL9BAy0XUDbQG7F9Hf2rfjw,1337
|
|
12
13
|
sycommon/database/async_database_service.py,sha256=4Ag5PH6DFEcJOXR8MRF9V_Jho5uCoU9Ibo3PqulDsXw,3916
|
|
@@ -23,7 +24,7 @@ sycommon/llm/llm_logger.py,sha256=n4UeNy_-g4oHQOsw-VUzF4uo3JVRLtxaMp1FcI8FiEo,54
|
|
|
23
24
|
sycommon/llm/llm_tokens.py,sha256=-udDyFcmyzx6UAwIi6_d_wwI5kMd5w0-WcS2soVPQxg,4309
|
|
24
25
|
sycommon/logging/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
26
|
sycommon/logging/async_sql_logger.py,sha256=_OY36XkUm__U3NhMgiecy-qd-nptZ_0gpE3J8lGAr58,2619
|
|
26
|
-
sycommon/logging/kafka_log.py,sha256=
|
|
27
|
+
sycommon/logging/kafka_log.py,sha256=1pUZ0N4FPRsTpg8PEY27iIa3xAMiLKYLBM3PDV804Lo,9934
|
|
27
28
|
sycommon/logging/logger_levels.py,sha256=_-uQ_T1N8NkNgcAmLrMmJ83nHTDw5ZNvXFPvdk89XGY,1144
|
|
28
29
|
sycommon/logging/logger_wrapper.py,sha256=TiHsrIIHiQMzXgXK12-0KIpU9GhwQJOoHslakzmq2zc,357
|
|
29
30
|
sycommon/logging/sql_logger.py,sha256=aEU3OGnI_51Tjyuuf4FpUi9KPTceFRuKAOyQbPzGhzM,2021
|
|
@@ -31,12 +32,12 @@ sycommon/middleware/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSu
|
|
|
31
32
|
sycommon/middleware/context.py,sha256=sc1UjN55dYww2tT9KdFMJV8mgpGro67SnETzbVzty-s,155
|
|
32
33
|
sycommon/middleware/cors.py,sha256=0B5d_ovD56wcH9TfktRs88Q09R9f8Xx5h5ALWYvE8Iw,600
|
|
33
34
|
sycommon/middleware/docs.py,sha256=bVdDBIHXGVBv562MQLSroa1DgHoObxR9gFzv71PIejg,1187
|
|
34
|
-
sycommon/middleware/exception.py,sha256=
|
|
35
|
+
sycommon/middleware/exception.py,sha256=UAy0tKijI_2JoKjwT3h62aL-tybftP3IETvcr26NOao,2883
|
|
35
36
|
sycommon/middleware/middleware.py,sha256=SzZ4wufSNdwC4Ppw99TE7a6AVGkrZRc55NHSrA3PiC8,1447
|
|
36
37
|
sycommon/middleware/monitor_memory.py,sha256=pYRK-wRuDd6enSg9Pf8tQxPdYQS6S0AyjyXeKFRLKEs,628
|
|
37
38
|
sycommon/middleware/mq.py,sha256=4wBqiT5wJGcrfjk2GSr0_U3TStBxoNpHTzcRxVlMEHE,183
|
|
38
|
-
sycommon/middleware/timeout.py,sha256=
|
|
39
|
-
sycommon/middleware/traceid.py,sha256=
|
|
39
|
+
sycommon/middleware/timeout.py,sha256=RLMzGMrzK14zsf8x-hmUW1DXWezETB0ZY8mpr9EKsos,740
|
|
40
|
+
sycommon/middleware/traceid.py,sha256=SmA9qsqMQeuGGog9xDHzXgJFhm8UxCkXEkxalaAt4hg,13121
|
|
40
41
|
sycommon/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
41
42
|
sycommon/models/base_http.py,sha256=EICAAibx3xhjBsLqm35Mi3DCqxp0FME4rD_3iQVjT_E,3051
|
|
42
43
|
sycommon/models/log.py,sha256=rZpj6VkDRxK3B6H7XSeWdYZshU8F0Sks8bq1p6pPlDw,500
|
|
@@ -45,10 +46,12 @@ sycommon/models/mqmsg_model.py,sha256=cxn0M5b0utQK6crMYmL-1waeGYHvK3AlGaRy23clqT
|
|
|
45
46
|
sycommon/models/mqsend_config.py,sha256=NQX9dc8PpuquMG36GCVhJe8omAW1KVXXqr6lSRU6D7I,268
|
|
46
47
|
sycommon/models/sso_user.py,sha256=i1WAN6k5sPcPApQEdtjpWDy7VrzWLpOrOQewGLGoGIw,2702
|
|
47
48
|
sycommon/notice/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
48
|
-
sycommon/notice/uvicorn_monitor.py,sha256=
|
|
49
|
+
sycommon/notice/uvicorn_monitor.py,sha256=VryQYcAtjijJuGDBimbVurgwxlsLaLtkNnABPDY5Tao,7332
|
|
49
50
|
sycommon/rabbitmq/rabbitmq_client.py,sha256=jClUm9Ao9vZ2IZg7IXIEaDbYYnV8qtmtm77vdmwpKE4,22599
|
|
50
51
|
sycommon/rabbitmq/rabbitmq_pool.py,sha256=5ruFVViSCKA7ToZmR2dZIkP0zT0ZcfsnkSGbrdkg0Tk,16141
|
|
51
|
-
sycommon/rabbitmq/rabbitmq_service.py,sha256=
|
|
52
|
+
sycommon/rabbitmq/rabbitmq_service.py,sha256=RkEWzCu2DkjV6G-hZ8FQTdewvkBiPAZezrO7GzKBkiI,39046
|
|
53
|
+
sycommon/sentry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
54
|
+
sycommon/sentry/sy_sentry.py,sha256=S2Np_6WmWkI9X76Q67RWZthhCz02tKCfvdhKI57587w,1373
|
|
52
55
|
sycommon/sse/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
56
|
sycommon/sse/event.py,sha256=k_rBJy23R7crtzQeetT0Q73D8o5-5p-eESGSs_BPOj0,2797
|
|
54
57
|
sycommon/sse/sse.py,sha256=__CfWEcYxOxQ-HpLor4LTZ5hLWqw9-2X7CngqbVHsfw,10128
|
|
@@ -57,15 +60,15 @@ sycommon/synacos/example.py,sha256=61XL03tU8WTNOo3FUduf93F2fAwah1S0lbH1ufhRhRk,5
|
|
|
57
60
|
sycommon/synacos/example2.py,sha256=adUaru3Hy482KrOA17DfaC4nwvLj8etIDS_KrWLWmCU,4811
|
|
58
61
|
sycommon/synacos/feign.py,sha256=frB3D5LeFDtT3pJLFOwFzEOrNAJKeQNGk-BzUg9T3WM,8295
|
|
59
62
|
sycommon/synacos/feign_client.py,sha256=ExO7Pd5B3eFKDjXqBRc260K1jkI49IYguLwJJaD2R-o,16166
|
|
60
|
-
sycommon/synacos/nacos_service.py,sha256=
|
|
63
|
+
sycommon/synacos/nacos_service.py,sha256=8RFvOpeKFqYDj1kzzdjZqBBUZMf_VcFeIyeO9uPf_AU,37194
|
|
61
64
|
sycommon/synacos/param.py,sha256=KcfSkxnXOa0TGmCjY8hdzU9pzUsA8-4PeyBKWI2-568,1765
|
|
62
65
|
sycommon/tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
63
66
|
sycommon/tools/docs.py,sha256=OPj2ETheuWjXLyaXtaZPbwmJKfJaYXV5s4XMVAUNrms,1607
|
|
64
67
|
sycommon/tools/merge_headers.py,sha256=HV_i52Q-9se3SP8qh7ZGYl8bP7Fxtal4CGVkyMwEdM8,4373
|
|
65
68
|
sycommon/tools/snowflake.py,sha256=lVEe5mNCOgz5OqGQpf5_nXaGnRJlI2STX2s-ppTtanA,11947
|
|
66
69
|
sycommon/tools/timing.py,sha256=OiiE7P07lRoMzX9kzb8sZU9cDb0zNnqIlY5pWqHcnkY,2064
|
|
67
|
-
sycommon_python_lib-0.1.
|
|
68
|
-
sycommon_python_lib-0.1.
|
|
69
|
-
sycommon_python_lib-0.1.
|
|
70
|
-
sycommon_python_lib-0.1.
|
|
71
|
-
sycommon_python_lib-0.1.
|
|
70
|
+
sycommon_python_lib-0.1.56b7.dist-info/METADATA,sha256=LNeEx8_l2ZYTYjb3NE5Uh8Epgrywk-O_p4zt6_JNy-k,7269
|
|
71
|
+
sycommon_python_lib-0.1.56b7.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
72
|
+
sycommon_python_lib-0.1.56b7.dist-info/entry_points.txt,sha256=q_h2nbvhhmdnsOUZEIwpuoDjaNfBF9XqppDEmQn9d_A,46
|
|
73
|
+
sycommon_python_lib-0.1.56b7.dist-info/top_level.txt,sha256=98CJ-cyM2WIKxLz-Pf0AitWLhJyrfXvyY8slwjTXNuc,17
|
|
74
|
+
sycommon_python_lib-0.1.56b7.dist-info/RECORD,,
|
|
File without changes
|
{sycommon_python_lib-0.1.56b6.dist-info → sycommon_python_lib-0.1.56b7.dist-info}/entry_points.txt
RENAMED
|
File without changes
|
{sycommon_python_lib-0.1.56b6.dist-info → sycommon_python_lib-0.1.56b7.dist-info}/top_level.txt
RENAMED
|
File without changes
|