'use strict'; const { OpenBridgeConfig } = require('./config.js') const { TaskManager } = require('./basic.js') const { TaskAccessTokenMP } = require('./task-mp-weixin.js') const { TaskAccessTokenH5, TaskTicket } = require('./task-h5-weixin.js') const TaskMapping = { 'mp-weixin': { 'accessToken': TaskAccessTokenMP }, 'h5-weixin': { 'accessToken': TaskAccessTokenH5, 'ticket': TaskTicket } } class ScheduleManager extends TaskManager { constructor() { super() } async runAll() { for (let i = 0; i < this.tasks.length; i++) { const task = this.tasks[i] try { await task.run() } catch (e) { console.log("task.run::", e) } } } newTask(T, config) { const newTask = new T(config) super.addTask(newTask) return newTask } } ScheduleManager.instance = function() { if (!ScheduleManager._instance) { ScheduleManager._instance = new ScheduleManager() } return ScheduleManager._instance } async function main() { const openBridgeConfig = new OpenBridgeConfig() ScheduleManager.instance().clear() for (let taskConfig of openBridgeConfig.tasks) { let { platform, tasks } = taskConfig for (let taskName of tasks) { const platformTask = TaskMapping[platform] if (platformTask) { ScheduleManager.instance().newTask(platformTask[taskName], taskConfig) } } } await ScheduleManager.instance().runAll() } module.exports = main;