From 2d1895a9ab8032b6bb3916c5340e15dfdd372db9 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Thu, 24 Aug 2023 10:18:29 +0800 Subject: [PATCH] fix: can start multi times (#31) --- src/server/Server.ts | 5 +++-- test/unit/server/GRPCServerImpl.test.ts | 2 ++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/server/Server.ts b/src/server/Server.ts index 1cde9d3..367f10e 100644 --- a/src/server/Server.ts +++ b/src/server/Server.ts @@ -19,7 +19,6 @@ import { ServerCredentials, Server as GRPCServer } from '@grpc/grpc-js'; import { AppCallbackService } from '../../proto/runtime/v1/appcallback_grpc_pb'; import GRPCServerImpl from './GRPCServerImpl'; import PubSub from './PubSub'; -import { sleep } from '../utils'; const debug = debuglog('layotto:server:main'); @@ -35,6 +34,7 @@ export default class Server { protected readonly logger: Console; private readonly _serverImpl: GRPCServerImpl; private readonly _server: GRPCServer; + #start = false; constructor(port: string = process.env.appcallback_GRPC_PORT ?? '9999', GRPCServerInstance?: any, @@ -54,9 +54,10 @@ export default class Server { } async start(): Promise { + if (this.#start) return; + this.#start = true; await this._bind(); this._server.start(); - await sleep(250); } async close(): Promise { diff --git a/test/unit/server/GRPCServerImpl.test.ts b/test/unit/server/GRPCServerImpl.test.ts index 6387647..62af2e7 100644 --- a/test/unit/server/GRPCServerImpl.test.ts +++ b/test/unit/server/GRPCServerImpl.test.ts @@ -65,6 +65,8 @@ describe.skip('server/GRPCServerImpl.test.ts', () => { const serverImpl = new CustomGRPCServerImpl(pubsubConfig); server = new Server('9999', serverImpl); await server.start(); + // start multi times should work + await server.start(); }); afterAll(async () => {