From c8927988d2dbea9b0b9ef924dce300b0f4935880 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 13 Jun 2023 12:05:04 +0800 Subject: [PATCH] 1 --- server/web3spider/tasks/event_center.js | 47 +++++++++++++++++++++++-- 1 file changed, 45 insertions(+), 2 deletions(-) diff --git a/server/web3spider/tasks/event_center.js b/server/web3spider/tasks/event_center.js index fc7ccbb..83a6305 100644 --- a/server/web3spider/tasks/event_center.js +++ b/server/web3spider/tasks/event_center.js @@ -6,21 +6,23 @@ const event = require('j7/event'); const BaseTask = require('./basetask'); const C = require('../C'); const factory = require('./factory'); +const serviceFactory = require('../services/factory'); class EventCenter extends BaseTask { instances = [ { - 'name': 'HEROInstance', + 'name': 'HERO', 'eventName': 'Transfer', }, { - 'name': 'WEAPONInstance', + 'name': 'WEAPON', 'eventName': 'Transfer', }, ]; async init() { + await this.initEventProcess(); } async initEventProcess() { @@ -31,6 +33,47 @@ class EventCenter extends BaseTask { instance['toBlock'] = 0; instance['currBlock'] = 0; }; + const allInstances = []; + { + this.instances.forEach((item) => { + allInstances.push(item); + }); + console.log(allInstances); + { + const instanceHash = {}; + allInstances.forEach((item) => { + const key = item['name'] + '.' + item['eventName']; + if (utils.hasKey(instanceHash, key)) { + console.log(key); + throw '!!!!duplicate instance'; + } + instanceHash[key] = item; + }); + } + allInstances.forEach((item) => { + initInstance(item); + }); + { + let count = 0; + const outputLog = async () => { + while (true) { + log.info(++count + '-------------------------------------------------------------'); + allInstances.forEach((item) => { + log.info(utils.jsonEncode(item)); + }); + await utils.sleep(1000 * 10); + } + }; + setTimeout(outputLog, 1000 * 3); + } + } + { + allInstances.forEach(async (item) => { + serviceFactory.create('EventProcess', null) + .init(this.conn, item, async (event) => { + }); + }); + } } }