1. 修复bug:前置判断context==null

2. 修复bug:HandlerHolder初始化this覆盖
3. 接入redis
pull/2/head
3y 4 years ago
parent a7e195daef
commit 67429a8ea8

@ -24,6 +24,11 @@
<version>0.0.1-SNAPSHOT</version> <version>0.0.1-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency> <dependency>
<groupId>com.tencentcloudapi</groupId> <groupId>com.tencentcloudapi</groupId>
<artifactId>tencentcloud-sdk-java</artifactId> <artifactId>tencentcloud-sdk-java</artifactId>

@ -1,6 +1,7 @@
package com.java3y.austin.handler; package com.java3y.austin.handler;
import com.java3y.austin.domain.TaskInfo; import com.java3y.austin.domain.TaskInfo;
import com.java3y.austin.enums.ChannelType;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
@ -11,6 +12,10 @@ import org.springframework.stereotype.Component;
@Component @Component
public class EmailHandler extends Handler { public class EmailHandler extends Handler {
public EmailHandler() {
channelCode = ChannelType.EMAIL.getCode();
}
@Override @Override
public void handler(TaskInfo taskInfoList) { public void handler(TaskInfo taskInfoList) {
} }

@ -1,7 +1,6 @@
package com.java3y.austin.handler; package com.java3y.austin.handler;
import com.java3y.austin.domain.TaskInfo; import com.java3y.austin.domain.TaskInfo;
import com.java3y.austin.enums.ChannelType;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import javax.annotation.PostConstruct; import javax.annotation.PostConstruct;
@ -12,6 +11,13 @@ import javax.annotation.PostConstruct;
*/ */
public abstract class Handler { public abstract class Handler {
/**
* Code
*
*/
protected Integer channelCode;
@Autowired @Autowired
private HandlerHolder handlerHolder; private HandlerHolder handlerHolder;
@ -20,9 +26,7 @@ public abstract class Handler {
*/ */
@PostConstruct @PostConstruct
private void init() { private void init() {
for (ChannelType channelType : ChannelType.values()) { handlerHolder.putHandler(channelCode, this);
handlerHolder.putHandler(channelType.getCode(), this);
}
} }
public void doHandler(TaskInfo taskInfo) { public void doHandler(TaskInfo taskInfo) {

@ -7,6 +7,7 @@ import com.java3y.austin.domain.SmsParam;
import com.java3y.austin.domain.SmsRecord; import com.java3y.austin.domain.SmsRecord;
import com.java3y.austin.domain.TaskInfo; import com.java3y.austin.domain.TaskInfo;
import com.java3y.austin.dto.SmsContentModel; import com.java3y.austin.dto.SmsContentModel;
import com.java3y.austin.enums.ChannelType;
import com.java3y.austin.script.SmsScript; import com.java3y.austin.script.SmsScript;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
@ -21,6 +22,10 @@ import java.util.List;
@Component @Component
public class SmsHandler extends Handler { public class SmsHandler extends Handler {
public SmsHandler() {
channelCode = ChannelType.SMS.getCode();
}
@Autowired @Autowired
private SmsRecordDao smsRecordDao; private SmsRecordDao smsRecordDao;

@ -10,6 +10,7 @@ import org.springframework.beans.factory.annotation.Autowired;
/** /**
* Task * Task
* 0.
* 1. * 1.
* 2. * 2.
* *
@ -28,10 +29,13 @@ public class Task implements Runnable {
@Override @Override
public void run() { public void run() {
// 0. TODO 丢弃消息
// 1. TODO 通用去重 // 1. TODO 通用去重
// 2. 真正发送消息 // 2. 真正发送消息
handlerHolder.route(taskInfo.getSendChannel()) handlerHolder.route(taskInfo.getSendChannel())
.doHandler(taskInfo); .doHandler(taskInfo);
} }
} }

@ -17,23 +17,18 @@ import java.util.concurrent.ExecutorService;
*/ */
@Component @Component
public class TaskPendingHolder { public class TaskPendingHolder {
private Map<String, ExecutorService> taskPendingHolder = new HashMap<>(32);
/**
* groupId
*/
private static List<String> groupIds = GroupIdMappingUtils.getAllGroupIds();
/** /**
* 线 * 线
*/ */
private Integer coreSize = 3; private Integer coreSize = 3;
private Integer maxSize = 3; private Integer maxSize = 3;
private Integer queueSize = 100; private Integer queueSize = 100;
private Map<String, ExecutorService> taskPendingHolder = new HashMap<>(32);
/**
* groupId
*/
private static List<String> groupIds = GroupIdMappingUtils.getAllGroupIds();
/** /**
* 线 * 线
* *
@ -46,7 +41,6 @@ public class TaskPendingHolder {
taskPendingHolder.put(groupId, ThreadPoolConfig.getThreadPool(coreSize, maxSize, queueSize)); taskPendingHolder.put(groupId, ThreadPoolConfig.getThreadPool(coreSize, maxSize, queueSize));
} }
} }
/** /**
* 线 * 线
* @param groupId * @param groupId

@ -59,6 +59,7 @@ public class ProcessController {
private Boolean preCheck(ProcessContext context) { private Boolean preCheck(ProcessContext context) {
// 上下文 // 上下文
if (context == null) { if (context == null) {
context = new ProcessContext();
context.setResponse(BasicResultVO.fail(RespStatusEnum.CONTEXT_IS_NULL)); context.setResponse(BasicResultVO.fail(RespStatusEnum.CONTEXT_IS_NULL));
return false; return false;
} }

@ -0,0 +1,25 @@
package com.java3y.austin.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* @author 3y
* @date 2021/12/9
*/
@RestController
@Slf4j
public class RedisController {
@Autowired
private RedisTemplate<String, String> redisTemplate;
@RequestMapping("/redis")
public void testRedis() {
log.info(redisTemplate.opsForValue().get("1"));
}
}

@ -17,7 +17,6 @@ tencent:
sms-sdk-app-id: sms-sdk-app-id:
template-id: template-id:
# 数据库相关的信息配置 TODO # 数据库相关的信息配置 TODO
spring: spring:
datasource: datasource:
@ -27,7 +26,7 @@ spring:
driver-class-name: driver-class-name:
# kafka相关的信息配置 TODO # kafka相关的信息配置 TODO
kafka: kafka:
bootstrap-servers: 119.91.205.248:9092 bootstrap-servers:
producer: producer:
key-serializer: org.apache.kafka.common.serialization.StringSerializer key-serializer: org.apache.kafka.common.serialization.StringSerializer
value-serializer: org.apache.kafka.common.serialization.StringSerializer value-serializer: org.apache.kafka.common.serialization.StringSerializer
@ -39,9 +38,14 @@ spring:
reset: earliest reset: earliest
auto-commit-interval: 1000 auto-commit-interval: 1000
enable-auto-commit: true enable-auto-commit: true
# redis 相关配置 TODO
redis:
host:
port:
password:
# tomcat / HikariPool(数据库连接池 配置) TODO # tomcat / HikariPool(数据库连接池 配置) TODO
# 消息topicName TODO # 消息topicName TODO
austin: austin:
topic: topic:

Loading…
Cancel
Save