Jelajahi Sumber

提交代码

yulongyan_citu 1 tahun lalu
induk
melakukan
312776d236
5 mengubah file dengan 43 tambahan dan 30 penghapusan
  1. 2 2
      app.py
  2. 2 1
      configs/connections.py
  3. 28 23
      configs/nacos_bak.py
  4. 9 2
      functions/solve_graph.py
  5. 2 2
      interfaces/rocketmq.py

+ 2 - 2
app.py

@@ -7,12 +7,12 @@ from interfaces.resume import resume
 from interfaces.rocketmq import rocket
 import logging
 from logging.handlers import TimedRotatingFileHandler
-
+from configs.nacos_bak import nacos_service_single
 
 app = Flask(__name__)
 app.config['JSON_AS_ASCII'] = False
 CORS(app, resources=r'/*')
-# nacos_service_single.start()
+nacos_service_single.start()
 # 注册蓝图
 app.register_blueprint(resume, url_prefix='/resume')
 app.register_blueprint(rocket, url_prefix='/rocket')

+ 2 - 1
configs/connections.py

@@ -3,9 +3,10 @@
 '''
 from flask import Flask
 from py2neo import Graph
-from configs.nacos_config import configs
+from configs.nacos_bak import nacos_service_single
 from py2neo import Node
 app = Flask(__name__)
+configs= nacos_service_single.get_nacos_configs()
 neo4j_url = configs['neo4j_url']
 username = configs['neo4j_username']
 password = configs['neo4j_password']

+ 28 - 23
configs/nacos_bak.py

@@ -1,11 +1,10 @@
 import nacos
 import socket
-from threading import Timer
 import logging
 import time
 import os
 import requests
-
+import threading
 
 class NacosService:
     CLIENT = None
@@ -18,6 +17,7 @@ class NacosService:
 
     __instance = None
     _registered = False  # 添加注册标志位
+    _stop_event = threading.Event()  # 用于控制心跳任务的停止
 
     def __init__(self):
         if os.name == 'posix':  # 'posix' 表示类Unix系统,包括Linux
@@ -65,25 +65,25 @@ class NacosService:
             self.logger.error(f"Failed to register instance: {res.status_code} - {res.text}")
 
     def send_heartbeat(self):
-        try:
-            res = requests.put(url=f"http://{self.SERVER_ADDRESSES}/nacos/v1/ns/instance/beat",
-                               data={
-                                   "ip": self.LOCAL_IP,
-                                   "port": "3333",
-                                   "namespaceId": self.NAMESPACE,
-                                   "serviceName": self.GROUP + "@@" + self.DATA_ID,
-                                   "clusterName": "DEFAULT"}
-                               )
-            if res.status_code == 200:
-                res_json = res.json()
-                if res_json["code"] == 20404:  ### 找不到资源重新注册
-                    self.register_instance()
-            else:
-                self.logger.error(f"Failed to send heartbeat: {res.status_code} - {res.text}")
-            t = Timer(4, self.send_heartbeat)  ## 4秒执行一次
-            t.start()
-        except Exception as e:
-            self.logger.error(f"send_heartbeat error: {e}")
+        while not self._stop_event.is_set():
+            try:
+                res = requests.put(url=f"http://{self.SERVER_ADDRESSES}/nacos/v1/ns/instance/beat",
+                                   data={
+                                       "ip": self.LOCAL_IP,
+                                       "port": "3333",
+                                       "namespaceId": self.NAMESPACE,
+                                       "serviceName": self.GROUP + "@@" + self.DATA_ID,
+                                       "clusterName": "DEFAULT"}
+                                   )
+                if res.status_code == 200:
+                    res_json = res.json()
+                    if res_json["code"] == 20404:  ### 找不到资源重新注册
+                        self.register_instance()
+                else:
+                    self.logger.error(f"Failed to send heartbeat: {res.status_code} - {res.text}")
+                self._stop_event.wait(4)  ## 4秒执行一次
+            except Exception as e:
+                self.logger.error(f"send_heartbeat error: {e}")
 
     def getServer(self, serverName):
         try:
@@ -103,10 +103,15 @@ class NacosService:
         try:
             self.CLIENT = nacos.NacosClient(self.SERVER_ADDRESSES, namespace=self.NAMESPACE)
             self.register_instance()
-            self.send_heartbeat()
+            self.heartbeat_thread = threading.Thread(target=self.send_heartbeat)
+            self.heartbeat_thread.start()
         except Exception as e:
             self.logger.error(f"start error: {e}")
 
+    def stop(self):
+        self._stop_event.set()
+        self.heartbeat_thread.join()
+
     def get_nacos_configs(self):
         url = f"http://{self.SERVER_ADDRESSES}/nacos/v1/cs/configs"
         params = {
@@ -132,4 +137,4 @@ nacos_service_single = NacosService()
 
 # 发送url请求,获取nacos上的配置
 def get_nacos_configs():
-    return nacos_service_single.get_nacos_configs()
+    return nacos_service_single.get_nacos_configs()

+ 9 - 2
functions/solve_graph.py

@@ -250,8 +250,15 @@ def add_seeker_dataList(dataList):
              eduType = record.get('eduType', '')
              birthday = record.get('birthday', '')
              if birthday:
-                 age = datetime.now().year - datetime.utcfromtimestamp(birthday / 1000).year
-                 age_range = next((value for key, value in age_ranges.items() if age in key), "未知")
+                 try:
+                     # 将 birthday 时间戳转换为秒
+                     birthday_timestamp = int(birthday) / 1000
+                     birthday_datetime = datetime.utcfromtimestamp(birthday_timestamp)
+                     age = datetime.now().year - birthday_datetime.year
+                     age_range = next((value for key, value in age_ranges.items() if age in key), "未知")
+                 except ValueError as e:
+                     current_app.logger.error(f'Invalid birthday format: {birthday}')
+                     age_range = None
              else:
                  age_range = None
 

+ 2 - 2
interfaces/rocketmq.py

@@ -4,7 +4,7 @@ from functions.label_number import job_label, enterprise_label, seeker_label
 from functions.operate_graph import operate_job, operate_enterprise, operate_seeker
 import logging
 from functions.similarity_judge import similar_job, similar_seeker, draw_graph, home_job, home_person, draw_person_graph
-from functions.solve_graph import llm_client
+from functions.solve_graph import llm_client, llm_client1
 from configs.connections import connect_graph
 logger = logging.getLogger(__name__)
 rocket = Blueprint('rocket', __name__)
@@ -80,7 +80,7 @@ def query_graph():
         type = receiver.get('type', '')  # 1.找人  对应类型 person
 
         if description:
-            label_list = llm_client(description)
+            label_list = llm_client1(description)
             if isinstance(label_list, list) and label_list:
                 if not label:
                     label = []