From 1baf3a8fc3149b9a9f7f986a68cbbeba562c6279 Mon Sep 17 00:00:00 2001 From: zhl Date: Fri, 14 Apr 2023 15:34:20 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E7=9B=91=E6=8E=A7=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pm2_dev.sh | 1 + src/config/events.json | 2 +- src/controllers/workflow.controller.ts | 3 --- src/models/ScheduleConfirmEvent.ts | 8 +++++++- src/service/task.service.ts | 6 +++++- 5 files changed, 14 insertions(+), 6 deletions(-) diff --git a/pm2_dev.sh b/pm2_dev.sh index 619430a..47382e0 100755 --- a/pm2_dev.sh +++ b/pm2_dev.sh @@ -1 +1,2 @@ pm2 start npm --name "chain-client" --log-date-format "YYYY-MM-DD HH:mm:ss" -- run "dev:api" +pm2 start npm --name "chain-monitor" --log-date-format "YYYY-MM-DD HH:mm:ss" -- run "dev:monitor" \ No newline at end of file diff --git a/src/config/events.json b/src/config/events.json index 8e4e603..0d237de 100644 --- a/src/config/events.json +++ b/src/config/events.json @@ -1,6 +1,6 @@ [ { - "address": "0xc195196351566d2c4e13563C4492fB0BdB7894Fb", + "address": "0x8135D4F16A7AAA269cbf61CE9659D3A272BF541f", "event": "Confirmation", "abi": "BEMultiSigWallet", "fromBlock": 0, diff --git a/src/controllers/workflow.controller.ts b/src/controllers/workflow.controller.ts index a127e3b..cd1c7d2 100644 --- a/src/controllers/workflow.controller.ts +++ b/src/controllers/workflow.controller.ts @@ -2,14 +2,11 @@ import BaseController, { ROLE_ANON } from 'common/base.controller' import { ZError } from 'common/ZError' import { role, router } from 'decorators/router' import { getSignature, decrypt } from '@wecom/crypto' -import { XMLParser } from 'fast-xml-parser' import { TaskQueue } from 'queue/task.queue' -import { TaskStatus } from 'service/wechatwork.service' import { RequestTask } from 'models/RequestTask' import { BlockChain } from 'chain/BlockChain' import { ChainTask } from 'models/ChainTask' import { isObjectId } from 'utils/string.util' -import { ChainQueue } from 'queue/chain.queue' class WorkFlowController extends BaseController { @role(ROLE_ANON) diff --git a/src/models/ScheduleConfirmEvent.ts b/src/models/ScheduleConfirmEvent.ts index 331d638..c1794e5 100644 --- a/src/models/ScheduleConfirmEvent.ts +++ b/src/models/ScheduleConfirmEvent.ts @@ -1,5 +1,6 @@ import { getModelForClass, index, modelOptions, prop } from '@typegoose/typegoose' import { dbconn } from 'decorators/dbconn' +import { TaskSvr } from 'service/task.service' import { BaseModule } from './Base' @dbconn() @@ -45,7 +46,12 @@ export class ScheduleConfirmEventClass extends BaseModule { $inc: { version: 1 }, } - return ScheduleConfirmEvent.insertOrUpdate({ transactionHash: event.hash }, data) + let record = await ScheduleConfirmEvent.insertOrUpdate({ transactionHash: event.hash }, data) + if (record.version === 1) { + for (let id of event.ids) { + await new TaskSvr().parseOneSchedule(id) + } + } } } diff --git a/src/service/task.service.ts b/src/service/task.service.ts index 2e1fdee..a46d6be 100644 --- a/src/service/task.service.ts +++ b/src/service/task.service.ts @@ -1,5 +1,6 @@ import { BlockChain } from 'chain/BlockChain' import { singleton } from 'decorators/singleton' +import logger from 'logger/logger' import { ChainTask } from 'models/ChainTask' import { ReqTaskStatus, RequestTask } from 'models/RequestTask' import { ChainQueue } from 'queue/chain.queue' @@ -24,7 +25,10 @@ export class TaskSvr { if (!record) { return } - record.statue = ReqTaskStatus.WAIT_EXEC + if (record.status !== ReqTaskStatus.WAIT_EXEC) { + logger.info(`want exec schedule: ${scheduleId}, but status is ${record.status}`) + return + } await record.save() new ExecQueue().addTaskToQueue(record) }