aozhiwei 0369807a68 1
2023-07-10 21:07:25 +08:00

38 lines
867 B
JavaScript

const eventsFactory = require('./events/factory');
const services = {};
async function internalAdd(clsName, modName, isSingle) {
const modClass = require('./' + modName);
services[clsName] = {
'clsName': clsName,
'modName': modName,
'class': modClass,
'isSingle': isSingle
};
if (modClass.staticInit) {
await modClass.staticInit();
}
}
async function add(clsName, modName) {
await internalAdd(clsName, modName, false);
}
async function addSingle(clsName, modName) {
await internalAdd(clsName, modName, true);
}
async function init() {
await add(['PullDbEvent'], 'pull_dbevent');
await add(['DbEventProcess'], 'dbevent_process');
await eventsFactory.init();
}
function create(name, session = null) {
const service = services[name];
return new service['class'](session);
}
exports.init = init;
exports.create = create;