From f5c63e02ce2d8c5f9b071e3641ac6282357a2a91 Mon Sep 17 00:00:00 2001 From: undefined Date: Sun, 12 Sep 2021 00:18:46 +0800 Subject: [PATCH] core: fix index creation (#197) --- packages/hydrojudge/src/hosts/hydro.ts | 4 ---- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/model/task.ts | 3 +++ packages/hydrooj/src/service/db.ts | 7 ++++++- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/packages/hydrojudge/src/hosts/hydro.ts b/packages/hydrojudge/src/hosts/hydro.ts index b594df13d..8c1a94204 100644 --- a/packages/hydrojudge/src/hosts/hydro.ts +++ b/packages/hydrojudge/src/hosts/hydro.ts @@ -28,8 +28,6 @@ class JudgeTask { host: string; request: any; ws: WebSocket; - tag: any; - type: any; domainId: string; pid: string; rid: string; @@ -59,8 +57,6 @@ class JudgeTask { this.next = this.next.bind(this); this.end = this.end.bind(this); this.stat.handle = new Date(); - this.tag = this.request.tag; - this.type = this.request.type; this.domainId = this.request.pdomain; this.pid = this.request.pid.toString(); this.rid = this.request.rid; diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index 0eb57b150..b1f0b8db5 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "2.34.3", + "version": "2.34.4", "bin": "bin/hydrooj.js", "main": "src/loader", "module": "src/loader", diff --git a/packages/hydrooj/src/model/task.ts b/packages/hydrooj/src/model/task.ts index a8b84cae3..8d4bccbc2 100644 --- a/packages/hydrooj/src/model/task.ts +++ b/packages/hydrooj/src/model/task.ts @@ -69,7 +69,10 @@ class WorkerService implements BaseService { async (doc) => { try { logger.debug('Worker task: %o', doc); + const start = Date.now(); await this.handlers[doc.subType](doc); + const spent = Date.now() - start; + if (spent > 500) logger.warn('Slow worker task (%d ms): %s', spent, doc); } catch (e) { logger.error('Worker task fail: ', e); logger.error('%o', doc); diff --git a/packages/hydrooj/src/service/db.ts b/packages/hydrooj/src/service/db.ts index 27c85ee1c..a3ae10481 100644 --- a/packages/hydrooj/src/service/db.ts +++ b/packages/hydrooj/src/service/db.ts @@ -50,7 +50,12 @@ class MongoService implements BaseService { public async ensureIndexes(coll: Collection, ...args: IndexSpecification[]) { if (process.env.NODE_APP_INSTANCE !== '0') return; - const existed = await coll.listIndexes().toArray(); + let existed: any[]; + try { + existed = await coll.listIndexes().toArray(); + } catch (e) { + existed = []; + } for (const index of args) { const i = existed.find(t => t.name == index.name || JSON.stringify(t.key) == JSON.stringify(index.key)); if (!i) {