sycommon-python-lib 0.1.56b7__py3-none-any.whl → 0.1.56b9__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 +1 -3
- sycommon/middleware/traceid.py +19 -20
- sycommon/rabbitmq/rabbitmq_service.py +25 -854
- sycommon/rabbitmq/rabbitmq_service_client_manager.py +212 -0
- sycommon/rabbitmq/rabbitmq_service_connection_monitor.py +73 -0
- sycommon/rabbitmq/rabbitmq_service_consumer_manager.py +283 -0
- sycommon/rabbitmq/rabbitmq_service_core.py +117 -0
- sycommon/rabbitmq/rabbitmq_service_producer_manager.py +235 -0
- sycommon/synacos/nacos_client_base.py +119 -0
- sycommon/synacos/nacos_config_manager.py +106 -0
- sycommon/synacos/nacos_heartbeat_manager.py +142 -0
- sycommon/synacos/nacos_service.py +58 -798
- sycommon/synacos/nacos_service_discovery.py +138 -0
- sycommon/synacos/nacos_service_registration.py +252 -0
- {sycommon_python_lib-0.1.56b7.dist-info → sycommon_python_lib-0.1.56b9.dist-info}/METADATA +1 -1
- {sycommon_python_lib-0.1.56b7.dist-info → sycommon_python_lib-0.1.56b9.dist-info}/RECORD +19 -9
- {sycommon_python_lib-0.1.56b7.dist-info → sycommon_python_lib-0.1.56b9.dist-info}/WHEEL +0 -0
- {sycommon_python_lib-0.1.56b7.dist-info → sycommon_python_lib-0.1.56b9.dist-info}/entry_points.txt +0 -0
- {sycommon_python_lib-0.1.56b7.dist-info → sycommon_python_lib-0.1.56b9.dist-info}/top_level.txt +0 -0
sycommon/config/Config.py
CHANGED
|
@@ -15,10 +15,8 @@ class Config(metaclass=SingletonMeta):
|
|
|
15
15
|
with open(config_file, 'r', encoding='utf-8') as f:
|
|
16
16
|
self.config = yaml.safe_load(f)
|
|
17
17
|
self.MaxBytes = self.config.get('MaxBytes', 209715200)
|
|
18
|
-
self.Timeout = self.config.get('Timeout',
|
|
18
|
+
self.Timeout = self.config.get('Timeout', 600000)
|
|
19
19
|
self.MaxRetries = self.config.get('MaxRetries', 3)
|
|
20
|
-
self.OCR = self.config.get('OCR', None)
|
|
21
|
-
self.INVOICE_OCR = self.config.get('INVOICE_OCR', None)
|
|
22
20
|
self.llm_configs = []
|
|
23
21
|
self.embedding_configs = []
|
|
24
22
|
self.reranker_configs = []
|
sycommon/middleware/traceid.py
CHANGED
|
@@ -11,8 +11,7 @@ def setup_trace_id_handler(app):
|
|
|
11
11
|
@app.middleware("http")
|
|
12
12
|
async def trace_id_and_log_middleware(request: Request, call_next):
|
|
13
13
|
# ========== 1. 请求阶段:获取/生成 TraceID ==========
|
|
14
|
-
trace_id = request.headers.get(
|
|
15
|
-
"x-traceId-header") or request.headers.get("x-traceid-header")
|
|
14
|
+
trace_id = request.headers.get("x-traceid-header")
|
|
16
15
|
if not trace_id:
|
|
17
16
|
trace_id = Snowflake.id
|
|
18
17
|
|
|
@@ -101,15 +100,15 @@ def setup_trace_id_handler(app):
|
|
|
101
100
|
# 处理 SSE (Server-Sent Events)
|
|
102
101
|
if "text/event-stream" in response_content_type:
|
|
103
102
|
try:
|
|
104
|
-
response.headers["x-
|
|
103
|
+
response.headers["x-traceid-header"] = trace_id
|
|
105
104
|
expose_headers = response.headers.get(
|
|
106
105
|
"access-control-expose-headers", "")
|
|
107
106
|
if expose_headers:
|
|
108
|
-
if "x-
|
|
107
|
+
if "x-traceid-header" not in expose_headers.lower():
|
|
109
108
|
response.headers[
|
|
110
|
-
"access-control-expose-headers"] = f"{expose_headers}, x-
|
|
109
|
+
"access-control-expose-headers"] = f"{expose_headers}, x-traceid-header"
|
|
111
110
|
else:
|
|
112
|
-
response.headers["access-control-expose-headers"] = "x-
|
|
111
|
+
response.headers["access-control-expose-headers"] = "x-traceid-header"
|
|
113
112
|
|
|
114
113
|
# SSE 必须移除 Content-Length
|
|
115
114
|
headers_lower = {
|
|
@@ -120,12 +119,12 @@ def setup_trace_id_handler(app):
|
|
|
120
119
|
# 流式响应头只读处理
|
|
121
120
|
new_headers = dict(response.headers) if hasattr(
|
|
122
121
|
response.headers, 'items') else {}
|
|
123
|
-
new_headers["x-
|
|
122
|
+
new_headers["x-traceid-header"] = trace_id
|
|
124
123
|
if "access-control-expose-headers" in new_headers:
|
|
125
|
-
if "x-
|
|
126
|
-
new_headers["access-control-expose-headers"] += ", x-
|
|
124
|
+
if "x-traceid-header" not in new_headers["access-control-expose-headers"].lower():
|
|
125
|
+
new_headers["access-control-expose-headers"] += ", x-traceid-header"
|
|
127
126
|
else:
|
|
128
|
-
new_headers["access-control-expose-headers"] = "x-
|
|
127
|
+
new_headers["access-control-expose-headers"] = "x-traceid-header"
|
|
129
128
|
new_headers.pop("content-length", None)
|
|
130
129
|
response.init_headers(new_headers)
|
|
131
130
|
|
|
@@ -158,18 +157,18 @@ def setup_trace_id_handler(app):
|
|
|
158
157
|
delete_keys={'content-length', 'accept', 'content-type'}
|
|
159
158
|
)
|
|
160
159
|
|
|
161
|
-
# 强制加入 x-
|
|
162
|
-
merged_headers["x-
|
|
160
|
+
# 强制加入 x-traceid-header
|
|
161
|
+
merged_headers["x-traceid-header"] = trace_id
|
|
163
162
|
merged_headers.update(cors_headers)
|
|
164
163
|
|
|
165
164
|
# 更新暴露头
|
|
166
165
|
expose_headers = merged_headers.get(
|
|
167
166
|
"access-control-expose-headers", "")
|
|
168
167
|
if expose_headers:
|
|
169
|
-
if "x-
|
|
170
|
-
merged_headers["access-control-expose-headers"] = f"{expose_headers}, x-
|
|
168
|
+
if "x-traceid-header" not in expose_headers.lower():
|
|
169
|
+
merged_headers["access-control-expose-headers"] = f"{expose_headers}, x-traceid-header"
|
|
171
170
|
else:
|
|
172
|
-
merged_headers["access-control-expose-headers"] = "x-
|
|
171
|
+
merged_headers["access-control-expose-headers"] = "x-traceid-header"
|
|
173
172
|
|
|
174
173
|
# 应用 Headers
|
|
175
174
|
if hasattr(response.headers, 'clear'):
|
|
@@ -212,7 +211,7 @@ def setup_trace_id_handler(app):
|
|
|
212
211
|
media_type=response.media_type
|
|
213
212
|
)
|
|
214
213
|
response.headers["content-length"] = str(len(new_body))
|
|
215
|
-
response.headers["x-
|
|
214
|
+
response.headers["x-traceid-header"] = trace_id
|
|
216
215
|
# 恢复 CORS
|
|
217
216
|
for k, v in cors_headers.items():
|
|
218
217
|
response.headers[k] = v
|
|
@@ -226,7 +225,7 @@ def setup_trace_id_handler(app):
|
|
|
226
225
|
)
|
|
227
226
|
response.headers["content-length"] = str(
|
|
228
227
|
len(response_body))
|
|
229
|
-
response.headers["x-
|
|
228
|
+
response.headers["x-traceid-header"] = trace_id
|
|
230
229
|
for k, v in cors_headers.items():
|
|
231
230
|
response.headers[k] = v
|
|
232
231
|
else:
|
|
@@ -239,7 +238,7 @@ def setup_trace_id_handler(app):
|
|
|
239
238
|
)
|
|
240
239
|
response.headers["content-length"] = str(
|
|
241
240
|
len(response_body))
|
|
242
|
-
response.headers["x-
|
|
241
|
+
response.headers["x-traceid-header"] = trace_id
|
|
243
242
|
for k, v in cors_headers.items():
|
|
244
243
|
response.headers[k] = v
|
|
245
244
|
except StopAsyncIteration:
|
|
@@ -255,11 +254,11 @@ def setup_trace_id_handler(app):
|
|
|
255
254
|
|
|
256
255
|
# 兜底:确保 Header 必有 TraceId
|
|
257
256
|
try:
|
|
258
|
-
response.headers["x-
|
|
257
|
+
response.headers["x-traceid-header"] = trace_id
|
|
259
258
|
except AttributeError:
|
|
260
259
|
new_headers = dict(response.headers) if hasattr(
|
|
261
260
|
response.headers, 'items') else {}
|
|
262
|
-
new_headers["x-
|
|
261
|
+
new_headers["x-traceid-header"] = trace_id
|
|
263
262
|
if hasattr(response, "init_headers"):
|
|
264
263
|
response.init_headers(new_headers)
|
|
265
264
|
|