From b3acd518257e54cd9545d361e31d9c8fff60e15f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=93=86=E5=95=A6=E5=A5=BD=E6=A2=A6?= <530353222@qq.com> Date: Fri, 3 Mar 2023 18:30:03 +0800 Subject: [PATCH] job --- electron/controller/example.js | 13 ++++++++++--- electron/jobs/example/timer.js | 5 ++--- electron/preload/index.js | 5 ----- frontend/src/api/main.js | 1 + frontend/src/config/router.config.js | 5 +++++ frontend/src/config/subMenu.js | 6 ++++++ frontend/src/views/base/jobs/Index.vue | 21 +++++++++++++-------- 7 files changed, 37 insertions(+), 19 deletions(-) diff --git a/electron/controller/example.js b/electron/controller/example.js index bce2eb6..42aea84 100644 --- a/electron/controller/example.js +++ b/electron/controller/example.js @@ -680,16 +680,23 @@ class ExampleController extends Controller { /** * 任务 */ - someJob (args) { + someJob (args, event) { let jobId = args.id; if (args.type == 'timer') { let myjob = new ChildJob(); myjob.exec('./jobs/example/timer', {jobId}); - myjob.on('job-timer', (data) => { - Log.info('from TimerJob data:', data); + // 监听任务进度 + const channel = 'controller.example.timerJobProgress'; + myjob.on('job-timer-progress', (data) => { + Log.info('[main-process] from TimerJob data:', data); + + // 发送数据到渲染进程 + event.reply(`${channel}`, data) }) } + + return; } /** diff --git a/electron/jobs/example/timer.js b/electron/jobs/example/timer.js index 76b7fcb..0e3b27e 100644 --- a/electron/jobs/example/timer.js +++ b/electron/jobs/example/timer.js @@ -24,14 +24,13 @@ class TimerJob extends Job { // 模拟计时器任务,执行10秒 let childMessage = Message.childMessage; - let eventName = 'job-timer'; + let eventName = 'job-timer-progress'; let number = 0; let jobId = this.params.jobId; setInterval(function() { - Log.info("[child-process] TimerJob number: ", number); Hello.welcome(); - childMessage.sendToMain(eventName, {number, jobId}); + childMessage.sendToMain(eventName, {jobId, number}); number++; }, 1000); diff --git a/electron/preload/index.js b/electron/preload/index.js index 9f22970..2708e47 100644 --- a/electron/preload/index.js +++ b/electron/preload/index.js @@ -2,8 +2,6 @@ ** preload为预加载模块,该文件将会在程序启动时加载 ** *************************************************/ -const ChildJob = require('ee-core/module/jobs/child'); - /** * 预加载模块入口 * @param {Object} app - 全局app对象 @@ -20,7 +18,4 @@ module.exports = async (app) => { securityAddon.create(); awakenAddon.create(); autoUpdaterAddon.create(); - - // let myjob = new ChildJob(); - // myjob.exec('./jobs/example/index'); } \ No newline at end of file diff --git a/frontend/src/api/main.js b/frontend/src/api/main.js index aaecdf9..790225c 100644 --- a/frontend/src/api/main.js +++ b/frontend/src/api/main.js @@ -35,6 +35,7 @@ const ipcApiRoute = { startJavaServer: 'controller.example.startJavaServer', closeJavaServer: 'controller.example.closeJavaServer', someJob: 'controller.example.someJob', + timerJobProgress: 'controller.example.timerJobProgress', hello: 'controller.example.hello', } diff --git a/frontend/src/config/router.config.js b/frontend/src/config/router.config.js index 07be74f..d9b5fa1 100644 --- a/frontend/src/config/router.config.js +++ b/frontend/src/config/router.config.js @@ -51,6 +51,11 @@ export const constantRouterMap = [ name: 'BaseWindowIndex', component: () => import('@/views/base/window/Index') }, + { + path: '/base/jobs/index', + name: 'BaseJobsIndex', + component: () => import('@/views/base/jobs/Index') + }, { path: '/base/notification/index', name: 'BaseNotificationIndex', diff --git a/frontend/src/config/subMenu.js b/frontend/src/config/subMenu.js index f997e58..8a9a25c 100644 --- a/frontend/src/config/subMenu.js +++ b/frontend/src/config/subMenu.js @@ -39,6 +39,12 @@ export default { pageName: 'BaseSqliteDBIndex', params: {} }, + 'menu_330' : { + icon: 'profile', + title: '任务', + pageName: 'BaseJobsIndex', + params: {} + }, 'menu_400' : { icon: 'profile', title: '视图', diff --git a/frontend/src/views/base/jobs/Index.vue b/frontend/src/views/base/jobs/Index.vue index 3919c32..bb8c9bc 100644 --- a/frontend/src/views/base/jobs/Index.vue +++ b/frontend/src/views/base/jobs/Index.vue @@ -2,18 +2,18 @@