From ac6f1f148c0714f45a116c8e752dd040f86da644 Mon Sep 17 00:00:00 2001 From: 3y Date: Fri, 28 Jan 2022 22:17:37 +0800 Subject: [PATCH] =?UTF-8?q?1.xxl-job=20=E5=8A=A8=E6=80=81=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E4=BB=BB=E5=8A=A1=202.=E6=B6=88=E6=81=AF=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E8=A1=A8=E4=BF=AE=E6=94=B9=E7=BB=93=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../austin/constants/XxlJobConstant.java | 2 +- .../service/impl/CronTaskServiceImpl.java | 6 ++- .../com/java3y/austin/utils/XxlJobUtils.java | 3 +- .../impl/MessageTemplateServiceImpl.java | 15 ++++--- .../java/com/java3y/austin/vo/TaskParam.java | 42 ------------------- sql/austin.sql | 19 +++++---- 6 files changed, 28 insertions(+), 59 deletions(-) delete mode 100644 austin-web/src/main/java/com/java3y/austin/vo/TaskParam.java diff --git a/austin-cron/src/main/java/com/java3y/austin/constants/XxlJobConstant.java b/austin-cron/src/main/java/com/java3y/austin/constants/XxlJobConstant.java index 8c98cfc..6566ceb 100644 --- a/austin-cron/src/main/java/com/java3y/austin/constants/XxlJobConstant.java +++ b/austin-cron/src/main/java/com/java3y/austin/constants/XxlJobConstant.java @@ -11,7 +11,7 @@ public class XxlJobConstant { /** * 接口路径 */ - public static final String LOGIN_URL = "/xxl-job-admin/login"; + public static final String LOGIN_URL = "/login"; public static final String INSERT_URL = "/jobinfo/add"; public static final String UPDATE_URL = "/jobinfo/update"; public static final String DELETE_URL = "/jobinfo/remove"; diff --git a/austin-cron/src/main/java/com/java3y/austin/service/impl/CronTaskServiceImpl.java b/austin-cron/src/main/java/com/java3y/austin/service/impl/CronTaskServiceImpl.java index c1fd646..a430622 100644 --- a/austin-cron/src/main/java/com/java3y/austin/service/impl/CronTaskServiceImpl.java +++ b/austin-cron/src/main/java/com/java3y/austin/service/impl/CronTaskServiceImpl.java @@ -1,5 +1,6 @@ package com.java3y.austin.service.impl; +import cn.hutool.core.util.IdUtil; import cn.hutool.http.HttpRequest; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSON; @@ -39,7 +40,7 @@ public class CronTaskServiceImpl implements CronTaskService { Map params = JSON.parseObject(JSON.toJSONString(xxlJobInfo), Map.class); String path; - if (xxlJobInfo.getId() != null) { + if (xxlJobInfo.getId() == null) { path = xxlAddresses + XxlJobConstant.INSERT_URL; } else { path = xxlAddresses + XxlJobConstant.UPDATE_URL; @@ -69,7 +70,7 @@ public class CronTaskServiceImpl implements CronTaskService { log.error("TaskService#saveTask fail:{}", JSON.toJSONString(response.body())); return BasicResultVO.fail(RespStatusEnum.SERVICE_ERROR, JSON.toJSONString(response.body())); } - return BasicResultVO.success(JSON.toJSONString(response.body())); + return BasicResultVO.success(JSON.parseObject(response.body())); } @Override @@ -122,6 +123,7 @@ public class CronTaskServiceImpl implements CronTaskService { Map hashMap = new HashMap<>(); hashMap.put("userName", xxlUserName); hashMap.put("password", xxlPassword); + hashMap.put("randomCode", IdUtil.fastSimpleUUID()); log.info("TaskService#getCookie params:{}", hashMap); HttpResponse response = HttpRequest.post(path).form(hashMap).execute(); diff --git a/austin-cron/src/main/java/com/java3y/austin/utils/XxlJobUtils.java b/austin-cron/src/main/java/com/java3y/austin/utils/XxlJobUtils.java index 7fe937b..1e93ead 100644 --- a/austin-cron/src/main/java/com/java3y/austin/utils/XxlJobUtils.java +++ b/austin-cron/src/main/java/com/java3y/austin/utils/XxlJobUtils.java @@ -19,7 +19,6 @@ public class XxlJobUtils { * 构建xxlJobInfo信息 * * @param messageTemplate - * @param triggerStatus 是否启动定时任务 * @return */ public static XxlJobInfo buildXxlJobInfo(MessageTemplate messageTemplate) { @@ -37,7 +36,7 @@ public class XxlJobUtils { .scheduleConf(scheduleConf) .scheduleType(scheduleType) .misfireStrategy(MisfireStrategyEnum.DO_NOTHING.name()) - .executorBlockStrategy(ExecutorRouteStrategyEnum.CONSISTENT_HASH.name()) + .executorRouteStrategy(ExecutorRouteStrategyEnum.CONSISTENT_HASH.name()) .executorHandler(XxlJobConstant.HANDLER_NAME) .executorParam(JSON.toJSONString(messageTemplate)) .executorBlockStrategy(ExecutorBlockStrategyEnum.SERIAL_EXECUTION.name()) diff --git a/austin-web/src/main/java/com/java3y/austin/service/impl/MessageTemplateServiceImpl.java b/austin-web/src/main/java/com/java3y/austin/service/impl/MessageTemplateServiceImpl.java index a929db8..e8602dc 100644 --- a/austin-web/src/main/java/com/java3y/austin/service/impl/MessageTemplateServiceImpl.java +++ b/austin-web/src/main/java/com/java3y/austin/service/impl/MessageTemplateServiceImpl.java @@ -3,6 +3,7 @@ package com.java3y.austin.service.impl; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import com.alibaba.fastjson.JSONObject; import com.java3y.austin.constant.AustinConstant; import com.java3y.austin.dao.MessageTemplateDao; import com.java3y.austin.domain.MessageTemplate; @@ -89,12 +90,16 @@ public class MessageTemplateServiceImpl implements MessageTemplateService { XxlJobInfo xxlJobInfo = XxlJobUtils.buildXxlJobInfo(messageTemplate); BasicResultVO basicResultVO = cronTaskService.saveCronTask(xxlJobInfo); - // basicResultVO.getData() - //cronTaskService.startCronTask() + JSONObject data = (JSONObject) basicResultVO.getData(); + if (data.get("content") != null) { + cronTaskService.startCronTask(Integer.valueOf(String.valueOf(data.get("content")))); + MessageTemplate clone = ObjectUtil.clone(messageTemplate).setMsgStatus(MessageStatus.RUN.getCode()).setUpdated(Math.toIntExact(DateUtil.currentSeconds())); + messageTemplateDao.save(clone); + return BasicResultVO.success(); + } else { + return BasicResultVO.fail(); + } - MessageTemplate clone = ObjectUtil.clone(messageTemplate).setMsgStatus(MessageStatus.RUN.getCode()).setUpdated(Math.toIntExact(DateUtil.currentSeconds())); - messageTemplateDao.save(clone); - return BasicResultVO.success(); } @Override diff --git a/austin-web/src/main/java/com/java3y/austin/vo/TaskParam.java b/austin-web/src/main/java/com/java3y/austin/vo/TaskParam.java deleted file mode 100644 index 88e0ff6..0000000 --- a/austin-web/src/main/java/com/java3y/austin/vo/TaskParam.java +++ /dev/null @@ -1,42 +0,0 @@ -package com.java3y.austin.vo; - - -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; - -import java.util.Map; - -/** - * xxlJob任务的参数 - * @author 3y - */ -@Data -@Builder -@AllArgsConstructor -@NoArgsConstructor -public class TaskParam { - - /** - * 模板Id - */ - private String messageTemplateId; - - /** - * cron表达式 - */ - private String cron; - - /** - * 创建者 - */ - private String creator; - - - /** - * 额外参数信息 - */ - private Map extra; - -} diff --git a/sql/austin.sql b/sql/austin.sql index d44fc91..ef8c057 100644 --- a/sql/austin.sql +++ b/sql/austin.sql @@ -1,14 +1,17 @@ create database austin; +use austin; + + CREATE TABLE `message_template` ( `id` bigint(20) NOT NULL AUTO_INCREMENT, `name` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '标题', `audit_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '当前消息审核状态: 10.待审核 20.审核成功 30.被拒绝', - `flow_id` varchar(50) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '' COMMENT '工单ID', + `flow_id` varchar(50) COLLATE utf8mb4_unicode_ci COMMENT '工单ID', `msg_status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '当前消息状态:10.新建 20.停用 30.启用 40.等待发送 50.发送中 60.发送成功 70.发送失败', - `cron_task_id` int(11) COMMENT '定时任务Id (xxl-job-admin返回)', + `cron_task_id` bigint(20) COMMENT '定时任务Id (xxl-job-admin返回)', `id_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '消息的发送ID类型:10. userId 20.did 30.手机号 40.openId 50.email', `send_channel` tinyint(4) NOT NULL DEFAULT '0' COMMENT '消息发送渠道:10.IM 20.Push 30.短信 40.Email 50.公众号 60.小程序', `template_type` tinyint(4) NOT NULL DEFAULT '0' COMMENT '10.运营类 20.技术类接口调用', @@ -59,19 +62,21 @@ CREATE TABLE `sms_record` /*测试短信*/ -INSERT INTO austin.message_template (id, name, audit_status, flow_id, msg_status, id_type, send_channel, template_type, msg_type, expect_push_time, msg_content, send_account, creator, updator, auditor, team, proposer, is_deleted, created, updated, deduplication_time, is_night_shield) VALUES (1, 'test短信', 10, 'yyyy', 10, 30, 30, 10, 10, '0', '{"content":"{$contentValue}"}', 10, 'yyyyc', 'yyyyu', 'yyyyyyz', 'yyyt', 'yyyy22', 0, 1636978066, 1636978066, 1, 0); +INSERT INTO austin.message_template (id, name, audit_status, msg_status, id_type, send_channel, template_type, msg_type, expect_push_time, msg_content, send_account, creator, updator, auditor, team, proposer, is_deleted, created, updated, deduplication_time, is_night_shield) + +VALUES (1, 'test短信', 10, 10, 30, 30, 10, 10, '0', '{"content":"{$contentValue}"}', 10, 'yyyyc', 'yyyyu', 'yyyyyyz', 'yyyt', 'yyyy22', 0, 1636978066, 1636978066, 1, 0); /*测试短信+url链接追踪*/ -INSERT INTO austin.message_template (id, name, audit_status, flow_id, msg_status, id_type, send_channel, template_type, +INSERT INTO austin.message_template (id, name, audit_status, msg_status, id_type, send_channel, template_type, msg_type, expect_push_time, msg_content, send_account, creator, updator, auditor, team, proposer, is_deleted, created, updated, deduplication_time, is_night_shield) -VALUES (2, 'test短信', 10, 'yyyy', 10, 30, 30, 10, 20, '0', +VALUES (2, 'test短信', 10, 10, 30, 30, 10, 20, '0', '{"content":"{$contentValue}","url":"https://gitee.com/zhongfucheng/austin"}', 10, 'yyyyc', 'yyyyu', 'yyyyyyz', 'yyyt', 'yyyy22', 0, 1637411536, 1637411536, 1, 0); /*测试邮件发送*/ -INSERT INTO austin.message_template (id, name, audit_status, flow_id, msg_status, id_type, send_channel, template_type, +INSERT INTO austin.message_template (id, name, audit_status, msg_status, id_type, send_channel, template_type, msg_type, expect_push_time, msg_content, send_account, creator, updator, auditor, team, proposer, is_deleted, created, updated, deduplication_time, is_night_shield) -VALUES (3, 'test邮件', 10, 'yyyy', 10, 50, 40, 20, 10, '0', '{"content":"{$contentValue}","title":"{$title}"}', 10, +VALUES (3, 'test邮件', 10, 10, 50, 40, 20, 10, '0', '{"content":"{$contentValue}","title":"{$title}"}', 10, 'yyyyc', 'yyyyu', 'yyyyyyz', 'yyyt', 'yyyy22', 0, 1641546914, 1641546914, 1, 0); \ No newline at end of file