Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
熊鹏飞
/
xxljob220
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Settings
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
177ab8d2
authored
Mar 12, 2017
by
xueli.xue
Browse files
Options
_('Browse Files')
Download
Email Patches
Plain Diff
执行器策略推送
parent
6169ac54
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
46 additions
and
39 deletions
README.md
db/tables_xxl_job.sql
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
xxl-job-core/src/main/java/com/xxl/job/core/util/HttpClientUtil.java
README.md
View file @
177ab8d2
...
...
@@ -737,7 +737,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
-
3、CleanCode,清理无效的历史参数;
-
4、规范系统配置数据,通过配置文件统一管理;
-
5、执行器支持手动设置执行地址列表,提供开关切换使用注册地址还是手动设置的地址;
-
6、执行器路由规则:第一个、
循环、随机、顺序故障(默认)
转移;
-
6、执行器路由规则:第一个、
最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障
转移;
-
7、底层扩展数据接口调整;
-
8、新建任务默认为非运行状态;
...
...
db/tables_xxl_job.sql
View file @
177ab8d2
...
...
@@ -154,7 +154,7 @@ CREATE TABLE `XXL_JOB_QRTZ_TRIGGER_INFO` (
`update_time`
datetime
DEFAULT
NULL
,
`author`
varchar
(
64
)
DEFAULT
NULL
COMMENT
'作者'
,
`alarm_email`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'报警邮件'
,
`executor_route_strategy`
varchar
(
2
0
)
DEFAULT
NULL
COMMENT
'执行器路由策略'
,
`executor_route_strategy`
varchar
(
5
0
)
DEFAULT
NULL
COMMENT
'执行器路由策略'
,
`executor_handler`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'执行器任务handler'
,
`executor_param`
varchar
(
255
)
DEFAULT
NULL
COMMENT
'执行器任务参数'
,
`glue_switch`
int
(
11
)
DEFAULT
'0'
COMMENT
'GLUE模式开关:0-否,1-是'
,
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/core/jobbean/RemoteHttpJobBean.java
View file @
177ab8d2
This diff is collapsed.
Click to expand it.
xxl-job-admin/src/main/java/com/xxl/job/admin/core/route/strategy/ExecutorRouteRandom.java
View file @
177ab8d2
...
...
@@ -14,6 +14,7 @@ public class ExecutorRouteRandom extends ExecutorRouter {
@Override
public
String
route
(
int
jobId
,
ArrayList
<
String
>
addressList
)
{
// Collections.shuffle(addressList);
return
addressList
.
get
(
localRandom
.
nextInt
(
addressList
.
size
()));
}
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/IXxlJobLogDao.java
View file @
177ab8d2
...
...
@@ -17,7 +17,9 @@ public interface IXxlJobLogDao {
public
XxlJobLog
load
(
int
id
);
public
int
save
(
XxlJobLog
xxlJobLog
);
public
int
updateTriggerInfo
(
XxlJobLog
xxlJobLog
);
public
int
updateHandleInfo
(
XxlJobLog
xxlJobLog
);
public
int
delete
(
int
jobId
);
...
...
xxl-job-admin/src/main/java/com/xxl/job/admin/dao/impl/XxlJobLogDaoImpl.java
View file @
177ab8d2
...
...
@@ -55,7 +55,7 @@ public class XxlJobLogDaoImpl implements IXxlJobLogDao {
public
int
save
(
XxlJobLog
xxlJobLog
)
{
return
sqlSessionTemplate
.
insert
(
"XxlJobLogMapper.save"
,
xxlJobLog
);
}
@Override
public
int
updateTriggerInfo
(
XxlJobLog
xxlJobLog
)
{
if
(
xxlJobLog
.
getTriggerMsg
()!=
null
&&
xxlJobLog
.
getTriggerMsg
().
length
()>
2000
)
{
...
...
xxl-job-admin/src/main/resources/mybatis-mapper/XxlJobLogMapper.xml
View file @
177ab8d2
...
...
@@ -88,26 +88,20 @@
<insert
id=
"save"
parameterType=
"com.xxl.job.admin.core.model.XxlJobLog"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
INSERT INTO XXL_JOB_QRTZ_TRIGGER_LOG (
`job_group`,
`job_id`,
`executor_address`,
`executor_handler`,
`executor_param`
`job_id`
) VALUES (
#{jobGroup},
#{jobId},
#{executorAddress},
#{executorHandler},
#{executorParam}
#{jobId}
);
<selectKey
resultType=
"java.lang.Integer"
order=
"AFTER"
keyProperty=
"id"
>
SELECT LAST_INSERT_ID()
</selectKey>
</insert>
<update
id=
"updateTriggerInfo"
>
UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
SET
`trigger_time`= #{triggerTime},
SET
`trigger_time`= #{triggerTime},
`trigger_code`= #{triggerCode},
`trigger_msg`= #{triggerMsg},
`executor_address`= #{executorAddress},
...
...
@@ -115,7 +109,7 @@
`executor_param`= #{executorParam}
WHERE `id`= #{id}
</update>
<update
id=
"updateHandleInfo"
>
UPDATE XXL_JOB_QRTZ_TRIGGER_LOG
SET
...
...
xxl-job-admin/src/main/webapp/WEB-INF/template/joblog/joblog.index.ftl
View file @
177ab8d2
...
...
@@ -78,12 +78,12 @@
<th
name=
"id"
>
id
</th>
<th
name=
"jobGroup"
>
执行器ID
</th>
<th
name=
"jobId"
>
任务ID
</th>
<th
name=
"triggerTime"
>
调度时间
</th>
<th
name=
"triggerCode"
>
调度结果
</th>
<th
name=
"triggerMsg"
>
调度备注
</th>
<th
name=
"executorAddress"
>
执行器地址
</th>
<th
name=
"executorHandler"
>
JobHandler
</th>
<th
name=
"executorParam"
>
任务参数
</th>
<th
name=
"triggerTime"
>
调度时间
</th>
<th
name=
"triggerCode"
>
调度结果
</th>
<th
name=
"triggerMsg"
>
调度备注
</th>
<th
name=
"handleTime"
>
执行时间
</th>
<th
name=
"handleCode"
>
执行结果
</th>
<th
name=
"handleMsg"
>
执行备注
</th>
...
...
xxl-job-admin/src/main/webapp/static/js/jobinfo.index.1.js
View file @
177ab8d2
...
...
@@ -138,7 +138,7 @@ $(function() {
"sProcessing"
:
"处理中..."
,
"sLengthMenu"
:
"每页 _MENU_ 条记录"
,
"sZeroRecords"
:
"没有匹配结果"
,
"sInfo"
:
"第 _PAGE_ 页 ( 总共 _PAGES_ 页 )"
,
"sInfo"
:
"第 _PAGE_ 页 ( 总共 _PAGES_ 页
,_TOTAL_ 条记录
)"
,
"sInfoEmpty"
:
"无记录"
,
"sInfoFiltered"
:
"(由 _MAX_ 项结果过滤)"
,
"sInfoPostFix"
:
""
,
...
...
xxl-job-admin/src/main/webapp/static/js/joblog.index.1.js
View file @
177ab8d2
...
...
@@ -81,6 +81,25 @@ $(function() {
{
"data"
:
'id'
,
"bSortable"
:
false
,
"visible"
:
false
},
{
"data"
:
'jobGroup'
,
"visible"
:
false
},
{
"data"
:
'jobId'
,
"visible"
:
false
},
{
"data"
:
'triggerTime'
,
"render"
:
function
(
data
,
type
,
row
)
{
return
data
?
moment
(
new
Date
(
data
)).
format
(
"YYYY-MM-DD HH:mm:ss"
):
""
;
}
},
{
"data"
:
'triggerCode'
,
"render"
:
function
(
data
,
type
,
row
)
{
return
(
data
==
200
)?
'<span style="color: green">成功</span>'
:(
data
==
500
)?
'<span style="color: red">失败</span>'
:(
data
==
0
)?
''
:
data
;
}
},
{
"data"
:
'triggerMsg'
,
"render"
:
function
(
data
,
type
,
row
)
{
return
data
?
'<a class="logTips" href="javascript:;" >查看<span style="display:none;">'
+
data
+
'</span></a>'
:
"无"
;
}
},
{
"data"
:
'executorAddress'
,
"visible"
:
true
},
{
"data"
:
'executorHandler'
,
...
...
@@ -90,25 +109,7 @@ $(function() {
}
},
{
"data"
:
'executorParam'
,
"visible"
:
true
},
{
"data"
:
'triggerTime'
,
"render"
:
function
(
data
,
type
,
row
)
{
return
data
?
moment
(
new
Date
(
data
)).
format
(
"YYYY-MM-DD HH:mm:ss"
):
""
;
}
},
{
"data"
:
'triggerCode'
,
"render"
:
function
(
data
,
type
,
row
)
{
return
(
data
==
200
)?
'<span style="color: green">成功</span>'
:(
data
==
500
)?
'<span style="color: red">失败</span>'
:(
data
==
0
)?
''
:
data
;
}
},
{
"data"
:
'triggerMsg'
,
"render"
:
function
(
data
,
type
,
row
)
{
return
data
?
'<a class="logTips" href="javascript:;" >查看<span style="display:none;">'
+
data
+
'</span></a>'
:
"无"
;
}
},
{
"data"
:
'handleTime'
,
"render"
:
function
(
data
,
type
,
row
)
{
...
...
@@ -147,7 +148,7 @@ $(function() {
"sProcessing"
:
"处理中..."
,
"sLengthMenu"
:
"每页 _MENU_ 条记录"
,
"sZeroRecords"
:
"没有匹配结果"
,
"sInfo"
:
"第 _PAGE_ 页 ( 总共 _PAGES_ 页 )"
,
"sInfo"
:
"第 _PAGE_ 页 ( 总共 _PAGES_ 页
,_TOTAL_ 条记录
)"
,
"sInfoEmpty"
:
"无记录"
,
"sInfoFiltered"
:
"(由 _MAX_ 项结果过滤)"
,
"sInfoPostFix"
:
""
,
...
...
xxl-job-core/src/main/java/com/xxl/job/core/util/HttpClientUtil.java
View file @
177ab8d2
package
com
.
xxl
.
job
.
core
.
util
;
import
com.xxl.job.core.rpc.codec.RpcResponse
;
import
com.xxl.job.core.rpc.serialize.HessianSerializer
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpResponse
;
import
org.apache.http.client.methods.HttpPost
;
...
...
@@ -8,6 +10,8 @@ import org.apache.http.entity.ContentType;
import
org.apache.http.impl.client.CloseableHttpClient
;
import
org.apache.http.impl.client.HttpClients
;
import
org.apache.http.util.EntityUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
javax.servlet.http.HttpServletRequest
;
import
java.io.IOException
;
...
...
@@ -18,6 +22,7 @@ import java.io.InputStream;
* @author xuxueli 2015-10-31 19:50:41
*/
public
class
HttpClientUtil
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
HttpClientUtil
.
class
);
/**
* post request
...
...
@@ -47,7 +52,11 @@ public class HttpClientUtil {
EntityUtils
.
consume
(
entity
);
}
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
logger
.
error
(
""
,
e
);
RpcResponse
rpcResponse
=
new
RpcResponse
();
rpcResponse
.
setError
(
e
.
getMessage
());
responseBytes
=
HessianSerializer
.
serialize
(
rpcResponse
);
}
finally
{
httpPost
.
releaseConnection
();
try
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment