Skip to content

Commit 83577d7

Browse files
committed
优化健康检查日志打印
1 parent dc4447b commit 83577d7

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ gateway等网关插件的高扩展性
99
### 通过docker运行
1010

1111
```bash
12-
docker run anjia0532/discovery-syncer-python:v2.6.2
12+
docker run anjia0532/discovery-syncer-python:v2.6.3
1313
```
1414

1515
特别的,`-c ` 支持配置远端http[s]的地址,比如读取静态资源的,比如读取nacos的

app/model/syncer_model.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,9 @@ def health_check(self, healthcheck: dict, sqla_helper: SqlaReflectHelper):
122122
if self.timeouts + params['timeouts'] >= healthcheck.get("unhealthy", {}).get("timeouts", 1):
123123
params['status'] = "unhealthy"
124124
self.set_counts(params, sqla_helper)
125+
if not success:
126+
instances = self.get_target_service_all_instance(0, sqla_helper)
127+
logger.warning(f"健康检查 {self.target_id} {self.service} {schema}{self.instance}{healthcheck.get('uri')} , 实例状态: {json.dumps([d.to_dict_item() for d in instances])}")
125128
if params['status'] != self.status and healthcheck.get("alert", {}).get("url"):
126129
instances = self.get_target_service_all_instance(0, sqla_helper)
127130
keyfunc = lambda item: item['status']
@@ -154,13 +157,20 @@ def save_or_update(self, discovery_instances: ['Instance'], sqla_helper: SqlaRef
154157
instances = ss.query(DiscoveryInstance).filter(and_(DiscoveryInstance.target_id == self.target_id,
155158
DiscoveryInstance.service == self.service)).all()
156159
if len(discovery_instances) == 0:
160+
if len(instances) > 0:
161+
delete_instances = [d.instance for d in instances]
162+
logger.info(f"删除无效的实例: {json.dumps(delete_instances)}")
163+
sql = delete(DiscoveryInstance).where(DiscoveryInstance.instance.in_(delete_instances))
164+
ss.execute(sql)
165+
ss.commit()
157166
return instances
158167
tmps = [f"{d.ip}:{d.port}" for d in discovery_instances if d.enabled]
159168
ins = [d.instance for d in instances]
160169

161170
# 删除无效的
162171
delete_instances = [d for d in ins if d not in tmps]
163172
if delete_instances:
173+
logger.info(f"删除无效的实例: {json.dumps(delete_instances)}")
164174
sql = delete(DiscoveryInstance).where(DiscoveryInstance.instance.in_(delete_instances))
165175
ss.execute(sql)
166176
ss.commit()
@@ -169,6 +179,7 @@ def save_or_update(self, discovery_instances: ['Instance'], sqla_helper: SqlaRef
169179
{"id": self.id or str(uuid.uuid4()), "target_id": self.target_id, "service": self.service,
170180
"instance": d, "create_time": datetime.now()}) for d in tmps if d not in ins]
171181
if save_instances:
182+
logger.info(f"新增的实例: {json.dumps([d.to_dict_item() for d in save_instances])}")
172183
ss.add_all(save_instances)
173184
ss.commit()
174185
return instances

app/tasks/task_syncer.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ def health_check(target: dict):
8585
t.join()
8686
logger.info(f"健康检查完成, target: {target}")
8787

88+
8889
@boost(boost_params=FunboostCommonConfig(queue_name='queue_syncer_job', qps=50, ))
8990
def syncer(target: dict):
9091
"""

0 commit comments

Comments
 (0)