yulongyan_citu il y a 1 an
Parent
commit
8f44f08186
4 fichiers modifiés avec 145 ajouts et 148 suppressions
  1. 0 6
      Dockerfile
  2. 2 2
      app.py
  3. 140 140
      configs/nacos_bak.py
  4. 3 0
      logs/flask.log.2024-10-08

+ 0 - 6
Dockerfile

@@ -10,12 +10,6 @@ COPY . /opt/mendunr
 # 设置工作目录
 WORKDIR /opt/mendunr
 
-# 设置pip的最大工作线程数
-ENV PIP_MAX_WORKERS=1
-
-# 增加线程限制
-RUN bash -c "ulimit -u 4096"
-
 # 升级pip并安装依赖,使用阿里云的镜像源
 RUN pip install --no-cache-dir --no-deps --no-build-isolation --progress-bar off -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
 

+ 2 - 2
app.py

@@ -38,9 +38,9 @@ except Exception as e:
 def run_app():
     time.sleep(5)
     plat = platform.system().lower()
+    # if plat == 'windows':
+    #     app.run(host='0.0.0.0', port=3333, debug=True, use_reloader=True)
     if plat == 'windows':
-        app.run(host='0.0.0.0', port=3333, debug=True, use_reloader=True)
-    elif plat == 'linux':
         app.run(host='0.0.0.0', port=3333, debug=False, processes=1)
 
 if __name__ == '__main__':

+ 140 - 140
configs/nacos_bak.py

@@ -1,140 +1,140 @@
-# import nacos
-# import socket
-# import logging
-# import time
-# import os
-# import requests
-# import threading
-#
-# class NacosService:
-#     CLIENT = None
-#     DATA_ID = None
-#     GROUP = None
-#     LOCAL_IP = None
-#     SERVER_ADDRESSES = None
-#     NAMESPACE = None
-#     logger = logging.getLogger('app')  # 这里设置名字
-#
-#     __instance = None
-#     _registered = False  # 添加注册标志位
-#     _stop_event = threading.Event()  # 用于控制心跳任务的停止
-#
-#     def __init__(self):
-#         if os.name == 'posix':  # 'posix' 表示类Unix系统,包括Linux
-#             default_address = "127.0.0.1:8848"
-#         else:
-#             default_address = "192.168.3.80:8848"
-#         self.LOCAL_IP = str(os.getenv("NACOS_REGISTER_IP", default=socket.gethostbyname(socket.gethostname())))
-#         self.SERVER_ADDRESSES = default_address
-#         self.NAMESPACE = "dev"
-#         self.DATA_ID = "python-mendunr"
-#         self.GROUP = "DEFAULT_GROUP"
-#
-#     def __new__(cls, *args, **kwargs):
-#         if NacosService.__instance is None:
-#             NacosService.__instance = object.__new__(cls, *args, **kwargs)
-#         return NacosService.__instance
-#
-#     ### 获取配置
-#     def getConfig(self):
-#         return self.CLIENT.get_config(self.DATA_ID, self.GROUP)
-#
-#     ### 注册实例
-#     def register_instance(self):
-#         if self._registered:
-#             return
-#
-#         res = requests.post(url=f"http://{self.SERVER_ADDRESSES}/nacos/v1/ns/instance",
-#                             data={
-#                                 'groupName': self.GROUP,
-#                                 'metadata': '{"preserved.register.source":"SPRING_CLOUD","preserved.heart.beat.interval": 5500, "preserved.heart.beat.timeout": 30000, "preserved.ip.delete.timeout": 60000}',
-#                                 'namespaceId': self.NAMESPACE,
-#                                 'port': 3333,
-#                                 'enable': True,
-#                                 'healthy': True,
-#                                 'clusterName': 'DEFAULT',
-#                                 'ip': self.LOCAL_IP,
-#                                 'weight': 1,
-#                                 'ephemeral': False,  # 修改这里为 False
-#                                 'serviceName': self.GROUP + "@@" + self.DATA_ID
-#                             })
-#         if res.status_code == 200:
-#             self.logger.info("register_instance res %s", str(res.content, 'UTF-8'))
-#             self._registered = True  # 设置注册成功标志位
-#         else:
-#             self.logger.error(f"Failed to register instance: {res.status_code} - {res.text}")
-#
-#     def send_heartbeat(self):
-#         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:
-#             res = requests.get(url=f"http://{self.SERVER_ADDRESSES}/nacos/v1/ns/instance/list",
-#                                params={'namespaceId': self.NAMESPACE, 'serviceName': self.GROUP + "@@" + serverName})
-#             if res.status_code == 200:
-#                 hosts = res.json()["hosts"]
-#                 if len(hosts) > 0:
-#                     return hosts[0]
-#             else:
-#                 self.logger.error(f"Failed to get server list: {res.status_code} - {res.text}")
-#         except Exception as e:
-#             self.logger.error(f"getServer error: {e}")
-#         return None
-#
-#     def start(self):
-#         try:
-#             self.CLIENT = nacos.NacosClient(self.SERVER_ADDRESSES, namespace=self.NAMESPACE)
-#             self.register_instance()
-#             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 = {
-#             'tenant': self.NAMESPACE,
-#             'dataId': self.DATA_ID,
-#             'group': self.GROUP
-#         }
-#         try:
-#             r = requests.get(url, params)
-#             r.encoding = r.apparent_encoding
-#             if r.status_code == 200:
-#                 r_dict = r.json()
-#                 return r_dict
-#             else:
-#                 self.logger.error(f"Failed to get Nacos configs: {r.status_code} - {r.text}")
-#         except Exception as e:
-#             self.logger.error(f"get_nacos_configs error: {e}")
-#         return None
-#
-#
-# nacos_service_single = NacosService()
-#
-#
-# # 发送url请求,获取nacos上的配置
-# def get_nacos_configs():
-#     return nacos_service_single.get_nacos_configs()
+import nacos
+import socket
+import logging
+import time
+import os
+import requests
+import threading
+
+class NacosService:
+    CLIENT = None
+    DATA_ID = None
+    GROUP = None
+    LOCAL_IP = None
+    SERVER_ADDRESSES = None
+    NAMESPACE = None
+    logger = logging.getLogger('app')  # 这里设置名字
+
+    __instance = None
+    _registered = False  # 添加注册标志位
+    _stop_event = threading.Event()  # 用于控制心跳任务的停止
+
+    def __init__(self):
+        if os.name == 'posix':  # 'posix' 表示类Unix系统,包括Linux
+            default_address = "127.0.0.1:8848"
+        else:
+            default_address = "192.168.3.80:8848"
+        self.LOCAL_IP = str(os.getenv("NACOS_REGISTER_IP", default=socket.gethostbyname(socket.gethostname())))
+        self.SERVER_ADDRESSES = default_address
+        self.NAMESPACE = "dev"
+        self.DATA_ID = "python-mendunr"
+        self.GROUP = "DEFAULT_GROUP"
+
+    def __new__(cls, *args, **kwargs):
+        if NacosService.__instance is None:
+            NacosService.__instance = object.__new__(cls, *args, **kwargs)
+        return NacosService.__instance
+
+    ### 获取配置
+    def getConfig(self):
+        return self.CLIENT.get_config(self.DATA_ID, self.GROUP)
+
+    ### 注册实例
+    def register_instance(self):
+        if self._registered:
+            return
+
+        res = requests.post(url=f"http://{self.SERVER_ADDRESSES}/nacos/v1/ns/instance",
+                            data={
+                                'groupName': self.GROUP,
+                                'metadata': '{"preserved.register.source":"SPRING_CLOUD","preserved.heart.beat.interval": 5500, "preserved.heart.beat.timeout": 30000, "preserved.ip.delete.timeout": 60000}',
+                                'namespaceId': self.NAMESPACE,
+                                'port': 3333,
+                                'enable': True,
+                                'healthy': True,
+                                'clusterName': 'DEFAULT',
+                                'ip': self.LOCAL_IP,
+                                'weight': 1,
+                                'ephemeral': False,  # 修改这里为 False
+                                'serviceName': self.GROUP + "@@" + self.DATA_ID
+                            })
+        if res.status_code == 200:
+            self.logger.info("register_instance res %s", str(res.content, 'UTF-8'))
+            self._registered = True  # 设置注册成功标志位
+        else:
+            self.logger.error(f"Failed to register instance: {res.status_code} - {res.text}")
+
+    def send_heartbeat(self):
+        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:
+            res = requests.get(url=f"http://{self.SERVER_ADDRESSES}/nacos/v1/ns/instance/list",
+                               params={'namespaceId': self.NAMESPACE, 'serviceName': self.GROUP + "@@" + serverName})
+            if res.status_code == 200:
+                hosts = res.json()["hosts"]
+                if len(hosts) > 0:
+                    return hosts[0]
+            else:
+                self.logger.error(f"Failed to get server list: {res.status_code} - {res.text}")
+        except Exception as e:
+            self.logger.error(f"getServer error: {e}")
+        return None
+
+    def start(self):
+        try:
+            self.CLIENT = nacos.NacosClient(self.SERVER_ADDRESSES, namespace=self.NAMESPACE)
+            self.register_instance()
+            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 = {
+            'tenant': self.NAMESPACE,
+            'dataId': self.DATA_ID,
+            'group': self.GROUP
+        }
+        try:
+            r = requests.get(url, params)
+            r.encoding = r.apparent_encoding
+            if r.status_code == 200:
+                r_dict = r.json()
+                return r_dict
+            else:
+                self.logger.error(f"Failed to get Nacos configs: {r.status_code} - {r.text}")
+        except Exception as e:
+            self.logger.error(f"get_nacos_configs error: {e}")
+        return None
+
+
+nacos_service_single = NacosService()
+
+
+# 发送url请求,获取nacos上的配置
+def get_nacos_configs():
+    return nacos_service_single.get_nacos_configs()

+ 3 - 0
logs/flask.log.2024-10-08

@@ -0,0 +1,3 @@
+[2024-10-08 18:09:18,904][app.py:35][ERROR][27856] - Failed to rollover log file: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'E:\\task1\\mendunr_project\\logs\\flask.log' -> 'E:\\task1\\mendunr_project\\logs\\flask.log.2024-10-08'
+[2024-10-08 18:32:38,106][solve_graph.py:98][ERROR][8896] - llm_client error: invalid character in identifier (<unknown>, line 1)
+[2024-10-08 18:45:41,609][app.py:35][ERROR][13136] - Failed to rollover log file: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'E:\\task1\\mendunr_project\\logs\\flask.log' -> 'E:\\task1\\mendunr_project\\logs\\flask.log.2024-10-08'