diff --git a/server/web3spider/app.js b/server/web3spider/app.js index 6af93b4..0bb2043 100644 --- a/server/web3spider/app.js +++ b/server/web3spider/app.js @@ -14,6 +14,7 @@ event.addListener(event.APP_INITIALIZED_EVENT, async () => { require('./controllers/factory').init(); require('./models/factory').init(); require('./services/factory').init(); + require('./tasks/factory').init(); app.injectionSession(require('./session')); app.listen(config('listen_port')); }); diff --git a/server/web3spider/tasks/baseservice.js b/server/web3spider/tasks/baseservice.js new file mode 100644 index 0000000..d1eca1f --- /dev/null +++ b/server/web3spider/tasks/baseservice.js @@ -0,0 +1,13 @@ +class BaseService { + + constructor(session) { + this.session = session; + } + + getSession() { + return this.session; + } + +} + +module.exports = BaseService; diff --git a/server/web3spider/tasks/factory.js b/server/web3spider/tasks/factory.js new file mode 100644 index 0000000..5a9dbb0 --- /dev/null +++ b/server/web3spider/tasks/factory.js @@ -0,0 +1,23 @@ +const services = {}; + +function add(clsNames, modName) { + const modClass = require('./' + modName); + clsNames.forEach((clsName) => { + services[clsName] = { + 'clsName': clsName, + 'modName': modName, + 'class': modClass + }; + }); +} + +function init() { +} + +function create(name, session) { + const module = services[name]; + return new module['class'](session); +} + +exports.init = init; +exports.create = create;