From ea4d0d422ffd6f6dd84af78d477a56b08bdbefd9 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 9 Jul 2023 16:46:10 +0800 Subject: [PATCH] 1 --- server/web3bcspider/tasks/bcrefresh.js | 78 ++++++++++++++++++++++++++ server/web3bcspider/tasks/factory.js | 8 +-- 2 files changed, 82 insertions(+), 4 deletions(-) create mode 100644 server/web3bcspider/tasks/bcrefresh.js diff --git a/server/web3bcspider/tasks/bcrefresh.js b/server/web3bcspider/tasks/bcrefresh.js new file mode 100644 index 0000000..e2f17be --- /dev/null +++ b/server/web3bcspider/tasks/bcrefresh.js @@ -0,0 +1,78 @@ +const app = require('j7/app'); +const utils = require('j7/utils'); +const bcutils = require('j7/bcutils'); +const log = require('j7/log'); +const BaseTask = require('./basetask'); +const factory = require('./factory'); +const serviceFactory = require('../services/factory'); +const metaFactory = require('../metadata/factory'); + +class BcSpider extends BaseTask { + + async init() { + const netList = metaFactory.getNetList(); + netList.forEach + ( + (net) => { + this.initNet(net); + }); + } + + async initNet(net) { + const events = []; + net['Events'].forEach + ( + (eventConf) => { + const event = { + 'eventConf': eventConf, + 'progressInfo': { + 'pullCount': 0, + 'eventCount': 0, + 'fromBlock': 0, + 'toBlock': 0, + 'currBlock': 0 + } + }; + events.push(event); + this.createPullBcEventService(net, event); + }); + this.outputProgressInfo(net, events); + } + + createPullBcEventService(net, event) { + const bc = serviceFactory.create('BlockChain'); + bc.init(net['net_id']); + const pullBcEventService = serviceFactory.create('PullBcEvent'); + event['pullBcEventService'] = pullBcEventService; + pullBcEventService.init(bc, net, event); + return pullBcEventService; + } + + async outputProgressInfo(net, events) { + let count = 0; + while (true) { + log.info('----------------------------------------------------------'); + events.forEach + ( + (event) => { + const eventConf = event['eventConf']; + const progInfo = event['progressInfo']; + const logObj = 'net_id: ' + net['net_id'] + ' ' + + eventConf['contract_name'] + '.' + + eventConf['event_name'] + ' ' + + ' pullCount:' + progInfo['pullCount'] + + ' eventCount:' + progInfo['eventCount'] + + ' fromBlock:' + progInfo['fromBlock'] + + ' toBlock:' + progInfo['toBlock'] + + ' currBlock:' + progInfo['currBlock'] + ; + log.info(logObj); + } + ); + await utils.sleep(1000 * 10); + } + } + +} + +module.exports = BcSpider; diff --git a/server/web3bcspider/tasks/factory.js b/server/web3bcspider/tasks/factory.js index 9aacc28..cc69407 100644 --- a/server/web3bcspider/tasks/factory.js +++ b/server/web3bcspider/tasks/factory.js @@ -15,13 +15,13 @@ function add(clsNames, modName) { async function init() { add(['BcSpider'], 'bcspider'); + add(['BcRefresh'], 'bcrefresh'); const initTasks = [ - 'BcSpider' + 'BcSpider', + 'BcRefresh' ]; await utils.serial( - [ - 'BcSpider' - ], + initTasks, async (name) => { const task = create(name);