From 826840455c68fb9b74fe7d5efd4a5132a4be6a21 Mon Sep 17 00:00:00 2001 From: dy Date: Wed, 3 Jan 2024 20:19:58 +0800 Subject: [PATCH] =?UTF-8?q?api=20=E9=94=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/setWs.ts | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/setWs.ts b/src/setWs.ts index 9fb132c..9a19905 100644 --- a/src/setWs.ts +++ b/src/setWs.ts @@ -28,7 +28,7 @@ export async function createWs() { apiTimeout: 300000, logLevel: G.argv.logModel as LogLevel, logger:mylogger - }); + }); setCrossWs(G.serverCross); await G.serverCross.autoImplementApi(resolve(__dirname, 'api_cross'), true); await G.serverCross.start(); @@ -139,14 +139,14 @@ function setWs(server: WsServer) { //处理API锁,极限情况下只锁10s,防止死锁 //在下方postApiReturnFlow里会解锁 - if (call.conn.apiLock[call.service.name] && new Date().getTime() - call.conn.apiLock[call.service.name] < 10000) { + if (call.conn.apiLock[call.service.name] && call.conn.apiLock[call.service.name] > new Date().getTime()) { call.error('', {code: -100, message: '', time: 0}); return null; } - //API锁定 + //API锁定到什么时候 if (!writeList.includes(call.service.name)) { - call.conn.apiLock[call.service.name] = new Date().getTime(); + call.conn.apiLock[call.service.name] = new Date().getTime() + 10000; } //API耗时统计 call.conn.requstApiTime[call.service.name] = new Date().getTime(); @@ -196,7 +196,13 @@ function setWs(server: WsServer) { } //API解锁 - delete node.call.conn.apiLock[node.call.service.name]; + let now = new Date().getTime(); + + if(node.return.isSucc){ + node.call.conn.apiLock[node.call.service.name] = now+200; + }else{ + delete node.call.conn.apiLock[node.call.service.name]; + } return node; });