提交 177ab8d2 authored 作者: xueli.xue's avatar xueli.xue

执行器策略推送

上级 6169ac54
......@@ -737,7 +737,7 @@ Tips: 历史版本(V1.3.x)目前已经Release至稳定版本, 进入维护阶段
- 3、CleanCode,清理无效的历史参数;
- 4、规范系统配置数据,通过配置文件统一管理;
- 5、执行器支持手动设置执行地址列表,提供开关切换使用注册地址还是手动设置的地址;
- 6、执行器路由规则:第一个、循环、随机、顺序故障(默认)转移;
- 6、执行器路由规则:第一个、最后一个、轮询、随机、一致性HASH、最不经常使用、最近最久未使用、故障转移;
- 7、底层扩展数据接口调整;
- 8、新建任务默认为非运行状态;
......
......@@ -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(20) DEFAULT NULL COMMENT '执行器路由策略',
`executor_route_strategy` varchar(50) 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-是',
......
......@@ -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()));
}
......
......@@ -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);
......
......@@ -88,16 +88,10 @@
<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()
......
......@@ -78,12 +78,12 @@
<th name="id" >id</th>
<th name="jobGroup" >执行器ID</th>
<th name="jobId" >任务ID</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="executorAddress" >执行器地址</th>
<th name="executorHandler" >JobHandler</th>
<th name="executorParam" >任务参数</th>
<th name="handleTime" >执行时间</th>
<th name="handleCode" >执行结果</th>
<th name="handleMsg" >执行备注</th>
......
......@@ -138,7 +138,7 @@ $(function() {
"sProcessing" : "处理中...",
"sLengthMenu" : "每页 _MENU_ 条记录",
"sZeroRecords" : "没有匹配结果",
"sInfo" : "第 _PAGE_ 页 ( 总共 _PAGES_ 页 )",
"sInfo" : "第 _PAGE_ 页 ( 总共 _PAGES_ 页,_TOTAL_ 条记录 )",
"sInfoEmpty" : "无记录",
"sInfoFiltered" : "(由 _MAX_ 项结果过滤)",
"sInfoPostFix" : "",
......
......@@ -81,15 +81,6 @@ $(function() {
{ "data": 'id', "bSortable": false, "visible" : false},
{ "data": 'jobGroup', "visible" : false},
{ "data": 'jobId', "visible" : false},
{ "data": 'executorAddress', "visible" : true},
{
"data": 'executorHandler',
"visible" : true,
"render": function ( data, type, row ) {
return (row.executorHandler)?row.executorHandler:"GLUE模式";
}
},
{ "data": 'executorParam', "visible" : true},
{
"data": 'triggerTime',
"render": function ( data, type, row ) {
......@@ -109,6 +100,16 @@ $(function() {
return data?'<a class="logTips" href="javascript:;" >查看<span style="display:none;">'+ data +'</span></a>':"无";
}
},
{ "data": 'executorAddress', "visible" : true},
{
"data": 'executorHandler',
"visible" : true,
"render": function ( data, type, row ) {
return (row.executorHandler)?row.executorHandler:"GLUE模式";
}
},
{ "data": 'executorParam', "visible" : true},
{
"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" : "",
......
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 {
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论