我目前正在grpc中学习一些快速入门教程,其中添加了一些数据库连接,显然,在每个请求中创建数据库连接并不是最优的
def connection():
conn = psycopg2.connect(
user="postgres", password="some_password", database="some_db")
return conn
class LeagueGameManager(start_pb2_grpc.GameManagerServicer):
async def CreateLGGame(self, request, context):
try:
conn = connection()
cursor = conn.cursor()
cursor.execute("some sql statement")
conn.commit()
cursor.close()
conn.close()
except OperationalError as e:
context.set_details(e)
context.set_code(grpc.StatusCode.INTERNAL)
cursor.close()
conn.close()
return
return start_pb2.GameReply(json_response=json.dumps(new_row[0]))
async def serve():
server = grpc.aio.server()
start_pb2_grpc.add_GameManagerServicer_to_server(
LeagueGameManager(), server)
listen_addr = '[::]:50051'
server.add_insecure_port(listen_addr)
logging.info("Starting server on %s", listen_addr)
await server.start()
await server.wait_for_termination()
管理上述数据库连接的最佳方式是什么
我知道我有点晚了,但由于python中的gRPC没有很好的文档记录,我想帮助未来的访问者。 我最近一直在和gRPC打交道。对我来说,与数据库保持恒定连接的最简单方法是在服务类的构造函数中连接数据库。在我的例子中,我连接到MongoDb,它应该是这样的:
相关问题 更多 >
编程相关推荐