Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
Harvey
/
job-executor
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit fe027082
由
Harvey
编写于
2025-05-15 16:44:18 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
no message
1 个父辈
bb8ce09b
隐藏空白字符变更
内嵌
并排
正在显示
5 个修改的文件
包含
92 行增加
和
6 行删除
README.md
build/index.js
build/test.js
src/index.ts
src/test.ts
README.md
查看文件 @
fe02708
...
...
@@ -51,4 +51,34 @@ jobExecutor.register("demoJobHandler", async (args) => {
}
return { result: 'return value' };
})
\ No newline at end of file
})
//批量任务注册
const batchJob =
[
[
"demoJobHandler1",
async (args) => {
for (let i = 1; i < 10; i++) {
await new Promise((resolve, reject) => {
setTimeout(resolve, 888);
})
}
return { result: 'return value' };
}
],
[
"demoJobHandler2",
async (args) => {
for (let i = 1; i < 10; i++) {
await new Promise((resolve, reject) => {
setTimeout(resolve, 888);
})
}
return { result: 'return value' };
}
]
]
jobExecutor.registerBatch(batchJob);
\ No newline at end of file
build/index.js
查看文件 @
fe02708
...
...
@@ -36,7 +36,7 @@ class JobExecutor {
});
}
registerBatch
(
handlers
)
{
handlers
.
forEach
((
handler
,
jobName
)
=>
this
.
register
(
jobName
,
handler
));
handlers
.
forEach
((
handler
)
=>
this
.
register
(
handler
[
0
],
handler
[
1
]
));
}
getJobHandler
(
jobName
)
{
return
this
.
jobHandlers
.
get
(
jobName
);
...
...
build/test.js
查看文件 @
fe02708
...
...
@@ -25,4 +25,29 @@ jobExecutor.register("demoJobHandler", async (args) => {
}
return
{
result
:
'return value'
};
});
const
batchJob
=
[
[
"demoJobHandler1"
,
async
(
args
)
=>
{
for
(
let
i
=
1
;
i
<
10
;
i
++
)
{
await
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(
resolve
,
888
);
});
}
return
{
result
:
'return value'
};
}
],
[
"demoJobHandler2"
,
async
(
args
)
=>
{
for
(
let
i
=
1
;
i
<
10
;
i
++
)
{
await
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(
resolve
,
888
);
});
}
return
{
result
:
'return value'
};
}
]
];
jobExecutor
.
registerBatch
(
batchJob
);
//# sourceMappingURL=test.js.map
\ No newline at end of file
src/index.ts
查看文件 @
fe02708
...
...
@@ -92,10 +92,11 @@ export class JobExecutor {
/**
* 批量注册任务
* @param handlers 任务处理函数,需返回 Promise
* @param handlers Array<[string, Function]> 任务处理函数,需返回 Promise
*
*/
public
registerBatch
(
handlers
:
Map
<
string
,
Function
>
)
{
handlers
.
forEach
((
handler
,
jobName
)
=>
this
.
register
(
jobName
,
handler
));
public
registerBatch
(
handlers
:
any
[]
)
{
handlers
.
forEach
((
handler
)
=>
this
.
register
(
handler
[
0
],
handler
[
1
]
));
}
/**
...
...
src/test.ts
查看文件 @
fe02708
...
...
@@ -27,4 +27,34 @@ jobExecutor.register("demoJobHandler", async (args) => {
}
return
{
result
:
'return value'
};
})
\ No newline at end of file
})
//批量任务注册
const
batchJob
=
[
[
"demoJobHandler1"
,
async
(
args
)
=>
{
for
(
let
i
=
1
;
i
<
10
;
i
++
)
{
await
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(
resolve
,
888
);
})
}
return
{
result
:
'return value'
};
}
],
[
"demoJobHandler2"
,
async
(
args
)
=>
{
for
(
let
i
=
1
;
i
<
10
;
i
++
)
{
await
new
Promise
((
resolve
,
reject
)
=>
{
setTimeout
(
resolve
,
888
);
})
}
return
{
result
:
'return value'
};
}
]
]
jobExecutor
.
registerBatch
(
batchJob
);
\ No newline at end of file
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论