Skip to content
切换导航条
切换导航条
当前项目
正在载入...
登录
Harvey
/
job-executor
转到一个项目
切换导航栏
切换导航栏固定状态
项目
群组
代码片段
帮助
项目
活动
版本库
流水线
图表
问题
0
合并请求
0
维基
网络
创建新的问题
作业
提交
问题看板
文件
提交
网络
比较
分支
标签
Commit 4bef626e
由
Harvey
编写于
2025-04-28 18:24:13 +0800
浏览文件
选项
浏览文件
标签
下载
电子邮件补丁
差异文件
no message
1 个父辈
6471b6b5
隐藏空白字符变更
内嵌
并排
正在显示
7 个修改的文件
包含
36 行增加
和
22 行删除
build/job/index.js
build/xxl_job/executor.js
build/xxl_job/job_manager.js
config/config.js
src/job/index.ts
src/xxl_job/executor.ts
src/xxl_job/job_manager.ts
build/job/index.js
查看文件 @
4bef626
...
...
@@ -5,11 +5,12 @@ const job_handlers = new Map();
exports
.
job_handlers
=
job_handlers
;
const
common_1
=
require
(
"../libs/common"
);
async
function
demoJobHandler
(
jobLogger
,
jobParams
,
context
)
{
jobLogger
.
debug
(
'params: %o, context: %o'
,
jobParams
,
context
);
// jobLogger.debug('params: %o, context: %o', jobParams, context)
for
(
let
i
=
1
;
i
<
10
;
i
++
)
{
await
(
0
,
common_1
.
sleep
)(
1000
);
jobLogger
.
debug
(
`
${
i
}
s passed`
);
// jobLogger.debug(`${i}s passed`)
}
return
{
result
:
'test 123'
};
}
job_handlers
.
set
(
'demoJobHandler'
,
demoJobHandler
);
//# sourceMappingURL=index.js.map
\ No newline at end of file
build/xxl_job/executor.js
查看文件 @
4bef626
...
...
@@ -201,14 +201,15 @@ class Executor {
/**
* 任务回调:执行器执行完任务后,回调任务结果时使用
* @param {Error|null} error 错误对象
* @param {{logId: number, result: any}} jobResult 任务结果
* @param {{logId: number, result: any
,use_time:number
}} jobResult 任务结果
*/
async
callback
(
error
,
{
logId
,
result
})
{
async
callback
(
error
,
{
logId
,
result
,
use_time
})
{
var
handleMsg
=
JSON
.
stringify
({
use_time
,
result
,
error
:
error
&&
error
.
message
});
return
axios_1
.
default
.
post
(
`
${
this
.
scheduleCenterUrl
}
/api/callback`
,
[{
logId
,
logDateTim
:
Date
.
now
(),
handleCode
:
error
?
500
:
200
,
handleMsg
:
error
?
error
.
message
:
(
result
?
JSON
.
stringify
(
result
)
:
'success'
)
handleMsg
}],
{
headers
:
{
'XXL-JOB-ACCESS-TOKEN'
:
this
.
accessToken
,
...
...
build/xxl_job/job_manager.js
查看文件 @
4bef626
...
...
@@ -64,6 +64,7 @@ class JobManager {
// const logFilePath = this.getLogFilePath(logDateTime);
// const jobLogger = logger(loggerNamespace, logFilePath);
let
result
,
timeoutTimer
,
error
;
let
use_time
=
new
Date
().
getTime
();
try
{
if
(
this
.
hasJob
(
jobId
))
{
throw
new
Error
(
'已有相同任务正在运行'
);
...
...
@@ -82,20 +83,22 @@ class JobManager {
logId
,
callback
,
timeoutTimer
,
use_time
:
new
Date
().
getTime
()
-
use_time
,
result
:
null
,
error
:
new
Error
(
'任务执行超时'
)
}),
executorTimeout
*
1000
);
}
result
=
await
jobHandler
(
jobParams
,
this
.
context
);
}
catch
(
err
or
)
{
error
=
err
or
;
catch
(
err
)
{
error
=
err
;
}
await
this
.
finishJob
({
jobId
,
logId
,
callback
,
timeoutTimer
,
use_time
:
new
Date
().
getTime
()
-
use_time
,
result
,
error
});
...
...
@@ -115,15 +118,16 @@ class JobManager {
* @param {number} logId
* @param {*} jobLogger
* @param {function} callback
* @param {number} timeout
* @param {number} timeoutTimer
* @param {number} use_time
* @param {*} result
* @param {*} error
* @return {Promise<void>}
*/
async
finishJob
({
jobId
,
logId
,
callback
,
timeoutTimer
,
result
,
error
})
{
async
finishJob
({
jobId
,
logId
,
callback
,
timeoutTimer
,
use_time
,
result
,
error
})
{
try
{
timeoutTimer
&&
clearTimeout
(
timeoutTimer
);
await
callback
(
error
,
{
logId
,
result
});
await
callback
(
error
,
{
logId
,
use_time
,
result
});
}
catch
(
err
)
{
console
.
log
(
`finishJob error:
${
err
.
message
}
`
);
...
...
config/config.js
查看文件 @
4bef626
...
...
@@ -20,7 +20,8 @@ try {
port
:
8088
,
// 前端地址
app_domain
:
"http://[2408:8352:602:1100:1c8a:80f5:da47:66ef]:8088/"
,
// app_domain: "http://[2408:8352:602:1100:1c8a:80f5:da47:66ef]:8088/",
app_domain
:
"http://192.168.2.168:8080:8088/"
,
};
}
...
...
src/job/index.ts
查看文件 @
4bef626
...
...
@@ -4,13 +4,14 @@ const job_handlers = new Map();
import
{
sleep
}
from
'../libs/common'
async
function
demoJobHandler
(
jobLogger
,
jobParams
,
context
)
{
jobLogger
.
debug
(
'params: %o, context: %o'
,
jobParams
,
context
)
//
jobLogger.debug('params: %o, context: %o', jobParams, context)
for
(
let
i
=
1
;
i
<
10
;
i
++
)
{
await
sleep
(
1000
)
jobLogger
.
debug
(
`
${
i
}
s passed`
)
//
jobLogger.debug(`${i}s passed`)
}
return
{
result
:
'test 123'
}
}
job_handlers
.
set
(
'demoJobHandler'
,
demoJobHandler
)
...
...
src/xxl_job/executor.ts
查看文件 @
4bef626
...
...
@@ -238,16 +238,18 @@ export class Executor {
/**
* 任务回调:执行器执行完任务后,回调任务结果时使用
* @param {Error|null} error 错误对象
* @param {{logId: number, result: any}} jobResult 任务结果
* @param {{logId: number, result: any
,use_time:number
}} jobResult 任务结果
*/
async
callback
(
error
,
{
logId
,
result
})
{
async
callback
(
error
,
{
logId
,
result
,
use_time
})
{
var
handleMsg
:
any
=
JSON
.
stringify
({
use_time
,
result
,
error
:
error
&&
error
.
message
})
return
axios
.
post
(
`
${
this
.
scheduleCenterUrl
}
/api/callback`
,
[{
logId
,
logDateTim
:
Date
.
now
(),
handleCode
:
error
?
500
:
200
,
handleMsg
:
error
?
error
.
message
:
(
result
?
JSON
.
stringify
(
result
)
:
'success'
)
handleMsg
}],
{
headers
:
{
...
...
src/xxl_job/job_manager.ts
查看文件 @
4bef626
...
...
@@ -73,6 +73,7 @@ export class JobManager {
let
result
,
timeoutTimer
,
error
let
use_time
=
new
Date
().
getTime
()
try
{
...
...
@@ -95,6 +96,7 @@ export class JobManager {
logId
,
callback
,
timeoutTimer
,
use_time
:
new
Date
().
getTime
()
-
use_time
,
result
:
null
,
error
:
new
Error
(
'任务执行超时'
)
}),
...
...
@@ -102,17 +104,18 @@ export class JobManager {
);
}
result
=
await
jobHandler
(
jobParams
,
this
.
context
);
}
catch
(
err
or
)
{
error
=
err
or
}
catch
(
err
)
{
error
=
err
}
await
this
.
finishJob
({
jobId
,
logId
,
callback
,
timeoutTimer
,
use_time
:
new
Date
().
getTime
()
-
use_time
,
result
,
error
});
...
...
@@ -136,16 +139,17 @@ export class JobManager {
* @param {number} logId
* @param {*} jobLogger
* @param {function} callback
* @param {number} timeout
* @param {number} timeoutTimer
* @param {number} use_time
* @param {*} result
* @param {*} error
* @return {Promise<void>}
*/
async
finishJob
({
jobId
,
logId
,
callback
,
timeoutTimer
,
result
,
error
})
{
async
finishJob
({
jobId
,
logId
,
callback
,
timeoutTimer
,
use_time
,
result
,
error
})
{
try
{
timeoutTimer
&&
clearTimeout
(
timeoutTimer
)
await
callback
(
error
,
{
logId
,
result
})
await
callback
(
error
,
{
logId
,
use_time
,
result
})
}
catch
(
err
)
{
console
.
log
(
`finishJob error:
${
err
.
message
}
`
)
...
...
编写
预览
支持
Markdown
格式
附加文件
你添加了
0
人
到此讨论。请谨慎行事。
Finish editing this message first!
Cancel
请
注册
或
登录
后发表评论