From f834d9ca876333bcd472336a7b02ddfbdb15e196 Mon Sep 17 00:00:00 2001 From: undefined Date: Mon, 30 Jan 2023 13:28:23 +0800 Subject: [PATCH] core: fix websocket event push --- packages/hydrooj/package.json | 2 +- packages/hydrooj/src/model/task.ts | 3 +++ packages/hydrooj/src/service/db.ts | 2 +- packages/hydrooj/src/service/server.ts | 2 -- packages/ui-default/backendlib/builder.ts | 1 - 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/hydrooj/package.json b/packages/hydrooj/package.json index c6c8b1c62..e39c1739e 100644 --- a/packages/hydrooj/package.json +++ b/packages/hydrooj/package.json @@ -1,6 +1,6 @@ { "name": "hydrooj", - "version": "4.7.0", + "version": "4.7.1", "bin": "bin/hydrooj.js", "main": "src/plugin-api", "module": "src/plugin-api", diff --git a/packages/hydrooj/src/model/task.ts b/packages/hydrooj/src/model/task.ts index 822655472..3261bfef2 100644 --- a/packages/hydrooj/src/model/task.ts +++ b/packages/hydrooj/src/model/task.ts @@ -1,4 +1,5 @@ import { hostname } from 'os'; +import cac from 'cac'; import { FilterQuery, ObjectID } from 'mongodb'; import { nanoid } from 'nanoid'; import { sleep } from '@hydrooj/utils/lib/utils'; @@ -11,6 +12,7 @@ import db from '../service/db'; const logger = new Logger('model/task'); const coll = db.collection('task'); const collEvent = db.collection('event'); +const argv = cac().parse(); async function getFirst(query: FilterQuery) { if (process.env.CI) return null; @@ -133,6 +135,7 @@ export async function apply(ctx: Context) { { expire: { $gt: new Date() }, ack: { $nin: [id] } }, { $push: { ack: id } }, ); + if (argv.options.showEvent) logger.info('Event: %o', res.value); // eslint-disable-next-line no-await-in-loop await (res.value ? handleEvent(res.value) : sleep(500)); } diff --git a/packages/hydrooj/src/service/db.ts b/packages/hydrooj/src/service/db.ts index 0cef5aacf..3e3be124b 100644 --- a/packages/hydrooj/src/service/db.ts +++ b/packages/hydrooj/src/service/db.ts @@ -67,7 +67,7 @@ class MongoService { const coll = this.db.collection(c.name); const indexes = await coll.listIndexes().toArray(); for (const i of indexes) { - if (!i.expireAfterSeconds) continue; + if (typeof i.expireAfterSeconds !== 'number') continue; const key = Object.keys(i.key)[0]; await coll.deleteMany({ [key]: { $lt: new Date(Date.now() - i.expireAfterSeconds * 1000) } }); } diff --git a/packages/hydrooj/src/service/server.ts b/packages/hydrooj/src/service/server.ts index ea27e4fb8..11d3e2de1 100644 --- a/packages/hydrooj/src/service/server.ts +++ b/packages/hydrooj/src/service/server.ts @@ -390,8 +390,6 @@ export function Connection( await bus.parallel('connection/active', h); } catch (e) { await h.onerror(e); - } finally { - disposables.forEach((d) => d()); } }); return router.disposeLastOp; diff --git a/packages/ui-default/backendlib/builder.ts b/packages/ui-default/backendlib/builder.ts index 39ceb0536..f02a2fe86 100644 --- a/packages/ui-default/backendlib/builder.ts +++ b/packages/ui-default/backendlib/builder.ts @@ -71,7 +71,6 @@ const build = async (contents: string) => { }; export async function buildUI() { - console.log(1, 'building'); const start = Date.now(); let totalSize = 0; const entryPoints: string[] = [];