add gpuusage的逻辑

Change-Id: Ie1634a7d58ab94b05a3ebd7de87d362ca9be2286
diff --git a/Merge/back_rhj/app/utils/gpuwriter.py b/Merge/back_rhj/app/utils/gpuwriter.py
new file mode 100644
index 0000000..1e521f3
--- /dev/null
+++ b/Merge/back_rhj/app/utils/gpuwriter.py
@@ -0,0 +1,68 @@
+from sqlalchemy.orm import sessionmaker
+from sqlalchemy import create_engine
+from app.models.gpu_usage import GpuUsage
+import logging
+
+class GpuWriter:
+    def __init__(self, database_url):
+        """
+        初始化 GpuWriter
+        :param database_url: 数据库连接URL
+        """
+        self.engine = create_engine(database_url)
+        self.Session = sessionmaker(bind=self.engine)
+    
+    def write_gpu_usage(self, gpu_id, gpu_usage, gpu_memory_usage):
+        """
+        写入GPU使用情况到数据库
+        :param gpu_id: GPU编号
+        :param gpu_usage: GPU使用率(百分比)
+        :param gpu_memory_usage: GPU内存用量(MB)
+        :return: bool 是否写入成功
+        """
+        session = self.Session()
+        try:
+            gpu_record = GpuUsage(
+                gpu_id=gpu_id,
+                gpu_usage=gpu_usage,
+                gpu_memory_usage=gpu_memory_usage
+            )
+            session.add(gpu_record)
+            session.commit()
+            return True
+        except Exception as e:
+            session.rollback()
+            logging.error(f"写入GPU使用情况失败: {e}")
+            return False
+        finally:
+            session.close()
+
+    def get_latest_gpu_usage(self, limit=100):
+        """
+        获取最新的GPU使用情况记录
+        :param limit: 获取记录条数,默认100条
+        :return: list 包含GPU使用记录的字典列表
+        """
+        session = self.Session()
+        try:
+            records = session.query(GpuUsage)\
+                           .order_by(GpuUsage.timestamp.desc())\
+                           .limit(limit)\
+                           .all()
+            
+            result = []
+            for record in records:
+                result.append({
+                    'id': record.id,
+                    'gpu_id': record.gpu_id,
+                    'gpu_usage': record.gpu_usage,
+                    'gpu_memory_usage': record.gpu_memory_usage,
+                    'timestamp': record.timestamp.isoformat() if record.timestamp else None
+                })
+            
+            return result
+        except Exception as e:
+            logging.error(f"获取GPU使用情况失败: {e}")
+            return []
+        finally:
+            session.close()