83 lines
2.3 KiB
JavaScript
83 lines
2.3 KiB
JavaScript
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 DbSpider 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,
|
|
'lastIdx': 0,
|
|
'maxIdx': 0
|
|
}
|
|
};
|
|
events.push(event);
|
|
this.createPullDbEventService(net, event);
|
|
});
|
|
this.outputProgressInfo(net, events);
|
|
}
|
|
|
|
createPullDbEventService(net, event) {
|
|
const pullDbEventService = serviceFactory.create('PullDbEvent');
|
|
event['pullDbEventService'] = pullDbEventService;
|
|
pullDbEventService.init(net, event);
|
|
return pullDbEventService;
|
|
}
|
|
|
|
createDbEventProcessService(net, event) {
|
|
const DbEventProcessService = serviceFactory.create('DbEventProcess');
|
|
event['DbEventProcessService'] = DbEventProcessService;
|
|
DbEventProcessService.init(net, event);
|
|
return DbEventProcessService;
|
|
}
|
|
|
|
async outputProgressInfo(net, events) {
|
|
let count = 0;
|
|
while (true) {
|
|
log.info('----------------------------------------------------------');
|
|
events.forEach
|
|
(
|
|
(event) => {
|
|
const eventConf = event['eventConf'];
|
|
const progInfo = event['progressInfo'];
|
|
const pullService = event['pullDbEventService'];
|
|
const logObj = 'net_id: ' + net['net_id'] + ' ' +
|
|
eventConf['contract_name'] + '.' +
|
|
eventConf['event_name'] + ' ' +
|
|
' pullCount:' + progInfo['pullCount'] +
|
|
' eventCount:' + progInfo['eventCount'] +
|
|
' lastIdx:' + progInfo['lastIdx'] +
|
|
' maxIdx:' + pullService.getMaxIdx().toString() +
|
|
'';
|
|
log.info(logObj);
|
|
}
|
|
);
|
|
await utils.sleep(1000 * 10);
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
module.exports = DbSpider;
|