From ed92dda2a5b561d0d00eb76a9986e0417d165167 Mon Sep 17 00:00:00 2001 From: "Austin.Duan" Date: Mon, 25 Jul 2022 16:17:15 +0800 Subject: [PATCH 1/9] =?UTF-8?q?KERNEL-12095=20worker=E4=B8=BB=E8=BF=9B?= =?UTF-8?q?=E7=A8=8B=E5=9C=A8helper=E5=B1=82=E5=88=9B=E5=BB=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/cli/worker/cli.worker.js | 1 + .../template/main_thread/main_thread.helper.t | 26 +++++++++++++++++++ .../worker/template/main_thread/main_thread.t | 14 +--------- 3 files changed, 28 insertions(+), 13 deletions(-) create mode 100644 bin/cli/worker/template/main_thread/main_thread.helper.t diff --git a/bin/cli/worker/cli.worker.js b/bin/cli/worker/cli.worker.js index cfd331c8b..02a7c803a 100644 --- a/bin/cli/worker/cli.worker.js +++ b/bin/cli/worker/cli.worker.js @@ -45,6 +45,7 @@ module.exports = { 'action.worker_ability_test.ts': path.resolve(__dirname, './template/main_thread/action/action.worker_ability_test.t'), }, [`${name}_main_thread.ts`]: path.resolve(__dirname, './template/main_thread/main_thread.t'), + [`${name}_main_thread.helper.ts`]: path.resolve(__dirname, './template/main_thread/main_thread.helper.t'), }, utils: { 'action_type.ts': path.resolve(__dirname, './template/utils/action_type.t'), diff --git a/bin/cli/worker/template/main_thread/main_thread.helper.t b/bin/cli/worker/template/main_thread/main_thread.helper.t new file mode 100644 index 000000000..defe01502 --- /dev/null +++ b/bin/cli/worker/template/main_thread/main_thread.helper.t @@ -0,0 +1,26 @@ +import { ${WorkerName}MainThreadWorker } from './new_main_thread'; +// 不需要一起打包的话则不需要引入这行 +import { workerUrl } from 'fui-worker!../worker_thread/new_worker_thread'; + +// MainThread的创建在helper层处理 +export class ${WorkerName}MainThreadWorkerHelper { + public createMainTreadWorker() { + return BI.Workers.createWorker(${WorkerName}MainThreadWorker, { + workerUrl: this.urlFormatter(workerUrl), + workerName: BI.UUID(), + }); + } + + private urlFormatter(v: string) { + return v; + } +} + +export const mainThreadWorkerHelper = new ${WorkerName}MainThreadWorkerHelper(); + +// 调用示例 +mainThreadWorkerHelper.createMainTreadWorker() + .testCommunication() + .then(res => { + console.log(res) + }) \ No newline at end of file diff --git a/bin/cli/worker/template/main_thread/main_thread.t b/bin/cli/worker/template/main_thread/main_thread.t index 75f8fb674..00fb09177 100644 --- a/bin/cli/worker/template/main_thread/main_thread.t +++ b/bin/cli/worker/template/main_thread/main_thread.t @@ -1,8 +1,6 @@ import { WorkerAbilityTestMainThreadAction } from './action/action.worker_ability_test'; -// 不需要一起打包的话则不需要引入这行 -import { workerUrl } from 'fui-worker!../worker_thread/${workerName}_worker_thread'; -class ${WorkerName}MainTreadWorker extends BI.Workers.MainThreadWorker { +export class ${WorkerName}MainThreadWorker extends BI.Workers.MainThreadWorker { private communicationTest: WorkerAbilityTestMainThreadAction; public initActions(): void { @@ -13,13 +11,3 @@ class ${WorkerName}MainTreadWorker extends BI.Workers.MainThreadWorker { return this.communicationTest.communicationTest(); } } - -const ${workerName}MainTreadWorker = BI.Workers.createWorker(${WorkerName}MainTreadWorker, { - workerUrl, - workerName: BI.UUID(), -}); - -${workerName}MainTreadWorker.testCommunication() - .then(v => { - console.log(v); - }); From 2cb037c6693889ad2d8191219badd04784fd3ac0 Mon Sep 17 00:00:00 2001 From: "Austin.Duan" Date: Tue, 26 Jul 2022 14:20:49 +0800 Subject: [PATCH 2/9] =?UTF-8?q?KERNEL-12095=20WorkerHelper=E6=94=B9?= =?UTF-8?q?=E4=B8=8B=E8=AE=BE=E8=AE=A1=EF=BC=8C=E6=94=AF=E6=8C=81=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C=E3=80=81=E5=88=9B=E5=BB=BA=E3=80=81=E7=BB=88=E6=AD=A2?= =?UTF-8?q?worker?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/cli/worker/cli.worker.js | 2 +- bin/cli/worker/template/main_thread.helper.t | 71 +++++++++++++++++++ .../template/main_thread/main_thread.helper.t | 26 ------- 3 files changed, 72 insertions(+), 27 deletions(-) create mode 100644 bin/cli/worker/template/main_thread.helper.t delete mode 100644 bin/cli/worker/template/main_thread/main_thread.helper.t diff --git a/bin/cli/worker/cli.worker.js b/bin/cli/worker/cli.worker.js index 02a7c803a..555c99cf0 100644 --- a/bin/cli/worker/cli.worker.js +++ b/bin/cli/worker/cli.worker.js @@ -45,7 +45,6 @@ module.exports = { 'action.worker_ability_test.ts': path.resolve(__dirname, './template/main_thread/action/action.worker_ability_test.t'), }, [`${name}_main_thread.ts`]: path.resolve(__dirname, './template/main_thread/main_thread.t'), - [`${name}_main_thread.helper.ts`]: path.resolve(__dirname, './template/main_thread/main_thread.helper.t'), }, utils: { 'action_type.ts': path.resolve(__dirname, './template/utils/action_type.t'), @@ -57,6 +56,7 @@ module.exports = { }, [`${name}_worker_thread.ts`]: path.resolve(__dirname, './template/worker_thread/worker_thread.t'), }, + [`${name}_main_thread.helper.ts`]: path.resolve(__dirname, './template/main_thread.helper.t'), }, }; diff --git a/bin/cli/worker/template/main_thread.helper.t b/bin/cli/worker/template/main_thread.helper.t new file mode 100644 index 000000000..996cd9007 --- /dev/null +++ b/bin/cli/worker/template/main_thread.helper.t @@ -0,0 +1,71 @@ +import { ${WorkerName}MainThreadWorker } from './main_thread/${workerName}_main_thread'; +// 不需要一起打包的话则不需要引入这行 +import { workerUrl } from 'fui-worker!./worker_thread/${workerName}_worker_thread'; + +export class ${WorkerName}WorkerHelper { + public workers: WorkerItems[] = []; + + /** + * 支持创建多个worker + * @param key worker key + */ + public createMainThreadWorker(key: string = '') { + const findItem = this.workers.find(item => item.key === key); + + if (findItem) return findItem.worker; + + const newWorker = BI.Workers.createWorker(${WorkerName}MainThreadWorker, { + workerUrl: this.urlFormatter(workerUrl), + workerName: BI.UUID(), + }); + + this.workers.push({ + key, + worker: newWorker, + }); + + return newWorker; + } + + /** + * 格式化worker url,比如补充一些环境信息到参数里 + * @param url worker url + */ + private urlFormatter(url: string) { + return url; + } + + /** + * 终止worker,不传key就全部终止 + * @param key key + */ + public terminate(key?: string) { + if (!key) { + this.workers.forEach(item => { + item.worker.terminate(); + }); + + this.workers = []; + + return; + } + this.workers.find(item => item.key === key)?.worker.terminate(); + + const findIndex = this.workers.findIndex(item => item.key === key); + + findIndex !== -1 + && this.workers.splice(findIndex, 1); + } +} + +export const ${workerName}WorkerHelper = new ${WorkerName}WorkerHelper(); + +interface WorkerItems { + key: string; + worker: ${WorkerName}MainThreadWorker; +} + +// 使用示例 +${workerName}WorkerHelper.createMainThreadWorker() + .testCommunication() + .then(res => console.log(res)); diff --git a/bin/cli/worker/template/main_thread/main_thread.helper.t b/bin/cli/worker/template/main_thread/main_thread.helper.t deleted file mode 100644 index defe01502..000000000 --- a/bin/cli/worker/template/main_thread/main_thread.helper.t +++ /dev/null @@ -1,26 +0,0 @@ -import { ${WorkerName}MainThreadWorker } from './new_main_thread'; -// 不需要一起打包的话则不需要引入这行 -import { workerUrl } from 'fui-worker!../worker_thread/new_worker_thread'; - -// MainThread的创建在helper层处理 -export class ${WorkerName}MainThreadWorkerHelper { - public createMainTreadWorker() { - return BI.Workers.createWorker(${WorkerName}MainThreadWorker, { - workerUrl: this.urlFormatter(workerUrl), - workerName: BI.UUID(), - }); - } - - private urlFormatter(v: string) { - return v; - } -} - -export const mainThreadWorkerHelper = new ${WorkerName}MainThreadWorkerHelper(); - -// 调用示例 -mainThreadWorkerHelper.createMainTreadWorker() - .testCommunication() - .then(res => { - console.log(res) - }) \ No newline at end of file From ced17523f4739e1ee6d880446be1e4ea2f50a0a5 Mon Sep 17 00:00:00 2001 From: data Date: Tue, 26 Jul 2022 18:55:22 +0800 Subject: [PATCH 3/9] auto upgrade version to 2.0.20220726185509 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a272024af..c1fee0dab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fineui", - "version": "2.0.20220726155349", + "version": "2.0.20220726185509", "description": "fineui", "main": "dist/fineui_without_conflict.min.js", "types": "dist/lib/index.d.ts", From 17049a18f9c4d8272b106206f81892627b8dbeae Mon Sep 17 00:00:00 2001 From: "Austin.Duan" Date: Tue, 26 Jul 2022 20:09:51 +0800 Subject: [PATCH 4/9] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E4=B8=8B=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/cli/worker/template/main_thread.helper.t | 37 ++++++++------------ 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/bin/cli/worker/template/main_thread.helper.t b/bin/cli/worker/template/main_thread.helper.t index 996cd9007..29c679d87 100644 --- a/bin/cli/worker/template/main_thread.helper.t +++ b/bin/cli/worker/template/main_thread.helper.t @@ -3,26 +3,23 @@ import { ${WorkerName}MainThreadWorker } from './main_thread/${workerName}_main_ import { workerUrl } from 'fui-worker!./worker_thread/${workerName}_worker_thread'; export class ${WorkerName}WorkerHelper { - public workers: WorkerItems[] = []; + public workers = new Map(); /** * 支持创建多个worker * @param key worker key */ public createMainThreadWorker(key: string = '') { - const findItem = this.workers.find(item => item.key === key); - - if (findItem) return findItem.worker; + if (this.workers.has(key)) { + return this.workers.get(key); + } const newWorker = BI.Workers.createWorker(${WorkerName}MainThreadWorker, { workerUrl: this.urlFormatter(workerUrl), workerName: BI.UUID(), }); - this.workers.push({ - key, - worker: newWorker, - }); + this.workers.set(key, newWorker); return newWorker; } @@ -40,32 +37,26 @@ export class ${WorkerName}WorkerHelper { * @param key key */ public terminate(key?: string) { - if (!key) { - this.workers.forEach(item => { - item.worker.terminate(); + if (BI.isNull(key)) { + this.workers.forEach(thread => { + thread.terminate(); }); - this.workers = []; + this.workers.clear(); return; } - this.workers.find(item => item.key === key)?.worker.terminate(); - const findIndex = this.workers.findIndex(item => item.key === key); + this.workers.get(key)?.terminate(); - findIndex !== -1 - && this.workers.splice(findIndex, 1); + this.workers.delete(key); } } export const ${workerName}WorkerHelper = new ${WorkerName}WorkerHelper(); -interface WorkerItems { - key: string; - worker: ${WorkerName}MainThreadWorker; -} - // 使用示例 -${workerName}WorkerHelper.createMainThreadWorker() - .testCommunication() +const worker = ${workerName}WorkerHelper.createMainThreadWorker(); + +worker.testCommunication() .then(res => console.log(res)); From 4ebb9fbb92c41047b2167f92d0291808dd84e6da Mon Sep 17 00:00:00 2001 From: data Date: Wed, 27 Jul 2022 09:04:37 +0800 Subject: [PATCH 5/9] auto upgrade version to 2.0.20220727090428 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index c1fee0dab..77889b2ba 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fineui", - "version": "2.0.20220726185509", + "version": "2.0.20220727090428", "description": "fineui", "main": "dist/fineui_without_conflict.min.js", "types": "dist/lib/index.d.ts", From 876fba6c4392824ad47e4d3ba3e744a9ab1f04b1 Mon Sep 17 00:00:00 2001 From: "Austin.Duan" Date: Wed, 27 Jul 2022 10:21:31 +0800 Subject: [PATCH 6/9] =?UTF-8?q?KERNEL-12095=20=E6=94=B9=E4=B8=8B=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/cli/worker/template/main_thread.helper.t | 43 ++++++-------------- 1 file changed, 13 insertions(+), 30 deletions(-) diff --git a/bin/cli/worker/template/main_thread.helper.t b/bin/cli/worker/template/main_thread.helper.t index 29c679d87..e2242e27a 100644 --- a/bin/cli/worker/template/main_thread.helper.t +++ b/bin/cli/worker/template/main_thread.helper.t @@ -3,25 +3,22 @@ import { ${WorkerName}MainThreadWorker } from './main_thread/${workerName}_main_ import { workerUrl } from 'fui-worker!./worker_thread/${workerName}_worker_thread'; export class ${WorkerName}WorkerHelper { - public workers = new Map(); + private worker: ${WorkerName}MainThreadWorker; /** - * 支持创建多个worker - * @param key worker key + * 拿到helper中的worker */ - public createMainThreadWorker(key: string = '') { - if (this.workers.has(key)) { - return this.workers.get(key); + public get${WorkerName}MainThreadWorker() { + if (this.worker) { + return this.worker; } - const newWorker = BI.Workers.createWorker(${WorkerName}MainThreadWorker, { + this.worker = BI.Workers.createWorker(${WorkerName}MainThreadWorker, { workerUrl: this.urlFormatter(workerUrl), workerName: BI.UUID(), }); - this.workers.set(key, newWorker); - - return newWorker; + return this.worker; } /** @@ -33,30 +30,16 @@ export class ${WorkerName}WorkerHelper { } /** - * 终止worker,不传key就全部终止 - * @param key key + * 终止worker */ - public terminate(key?: string) { - if (BI.isNull(key)) { - this.workers.forEach(thread => { - thread.terminate(); - }); - - this.workers.clear(); - - return; - } - - this.workers.get(key)?.terminate(); - - this.workers.delete(key); + public terminate() { + this.worker?.terminate(); } } -export const ${workerName}WorkerHelper = new ${WorkerName}WorkerHelper(); - // 使用示例 -const worker = ${workerName}WorkerHelper.createMainThreadWorker(); +const workerHelper = new ${WorkerName}WorkerHelper(); -worker.testCommunication() +workerHelper.get${WorkerName}MainThreadWorker() + .testCommunication() .then(res => console.log(res)); From 3e43d5c9058422d13608d83f18c43f9a691f27fe Mon Sep 17 00:00:00 2001 From: "Austin.Duan" Date: Wed, 27 Jul 2022 10:24:03 +0800 Subject: [PATCH 7/9] =?UTF-8?q?=E5=8A=A0=E4=B8=8B=E6=B3=A8=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bin/cli/worker/template/main_thread.helper.t | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/bin/cli/worker/template/main_thread.helper.t b/bin/cli/worker/template/main_thread.helper.t index e2242e27a..af02e5192 100644 --- a/bin/cli/worker/template/main_thread.helper.t +++ b/bin/cli/worker/template/main_thread.helper.t @@ -8,7 +8,7 @@ export class ${WorkerName}WorkerHelper { /** * 拿到helper中的worker */ - public get${WorkerName}MainThreadWorker() { + public getWorker() { if (this.worker) { return this.worker; } @@ -38,8 +38,8 @@ export class ${WorkerName}WorkerHelper { } // 使用示例 -const workerHelper = new ${WorkerName}WorkerHelper(); +// const workerHelper = new ${WorkerName}WorkerHelper(); -workerHelper.get${WorkerName}MainThreadWorker() - .testCommunication() - .then(res => console.log(res)); +// workerHelper.getWorker() +// .testCommunication() +// .then(res => console.log(res)); From 5748064c3d01876c799a23ffa3e0b101ee6c6bfd Mon Sep 17 00:00:00 2001 From: data Date: Wed, 27 Jul 2022 11:04:53 +0800 Subject: [PATCH 8/9] auto upgrade version to 2.0.20220727110444 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 77889b2ba..854378c01 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fineui", - "version": "2.0.20220727090428", + "version": "2.0.20220727110444", "description": "fineui", "main": "dist/fineui_without_conflict.min.js", "types": "dist/lib/index.d.ts", From 167b4948cd37e594d02bdf998f17bd24b56dd12b Mon Sep 17 00:00:00 2001 From: data Date: Wed, 27 Jul 2022 11:16:02 +0800 Subject: [PATCH 9/9] auto upgrade version to 2.0.20220727111551 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 854378c01..fe7f49173 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fineui", - "version": "2.0.20220727110444", + "version": "2.0.20220727111551", "description": "fineui", "main": "dist/fineui_without_conflict.min.js", "types": "dist/lib/index.d.ts",