Browse Source

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java
master
杨威 3 months ago
parent
commit
a325279b6b
  1. 57
      dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitConfig.java
  2. 85
      dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitTtlQueueConfig.java
  3. 43
      dk-example/test-mq/src/main/java/org/dromara/stream/consumer/RabbitConsumer.java
  4. 20
      dk-example/test-mq/src/main/java/org/dromara/stream/controller/PushMessageController.java
  5. 30
      dk-example/test-mq/src/main/java/org/dromara/stream/producer/DelayRabbitProducer.java
  6. 23
      dk-example/test-mq/src/main/java/org/dromara/stream/producer/NormalRabbitProducer.java
  7. 2
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java
  8. 47
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java
  9. 13
      dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java
  10. 2
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IFlightTaskService.java
  11. 32
      dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java
  12. 4
      pom.xml

57
dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitConfig.java

@ -1,57 +0,0 @@
package org.dromara.stream.config;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
* @author xbhog
*/
@Configuration
public class RabbitConfig {
public static final String EXCHANGE_NAME = "demo-exchange";
public static final String QUEUE_NAME = "demo-queue";
public static final String ROUTING_KEY = "demo.routing.key";
/**
* 创建交换机
* ExchangeBuilder有四种交换机模式
* Direct Exchange直连交换机根据Routing Key(路由键)进行投递到不同队列
* Fanout Exchange扇形交换机采用广播模式根据绑定的交换机路由到与之对应的所有队列
* Topic Exchange主题交换机对路由键进行模式匹配后进行投递符号#表示一个或多个词*表示一个词
* Header Exchange头交换机不处理路由键而是根据发送的消息内容中的headers属性进行匹配
* durable 交换器是否持久化false 不持久化true 持久化
**/
@Bean
public TopicExchange exchange() {
return new TopicExchange(EXCHANGE_NAME);
}
/**
* 创建队列
* durable 队列是否持久化 队列调用此方法就是持久化 可查看方法的源码
* deliveryMode 消息是否持久化1 不持久化2 持久化
**/
@Bean
public Queue queue() {
return new Queue(QUEUE_NAME, false);
}
/**
* 绑定交换机和队列
* bing 方法参数可以是队列和交换机
* to 方法参数必须是交换机
* with 方法参数是路由Key 这里是以rabbit.开头
* noargs 就是不要参数的意思
* 这个方法的意思是把rabbit开头的消息 上面的队列 上面的交换机绑定
**/
@Bean
public Binding binding(Queue queue, TopicExchange exchange) {
return BindingBuilder.bind(queue).to(exchange).with(ROUTING_KEY);
}
}

85
dk-example/test-mq/src/main/java/org/dromara/stream/config/RabbitTtlQueueConfig.java

@ -1,85 +0,0 @@
package org.dromara.stream.config;
import org.springframework.amqp.core.*;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Map;
/**
* RabbitTTL队列
*
* @author xbhog
*/
@Configuration
public class RabbitTtlQueueConfig {
// 延迟队列名称
public static final String DELAY_QUEUE_NAME = "delay-queue";
// 延迟交换机名称
public static final String DELAY_EXCHANGE_NAME = "delay-exchange";
// 延迟路由键名称
public static final String DELAY_ROUTING_KEY = "delay.routing.key";
// 死信交换机名称
public static final String DEAD_LETTER_EXCHANGE = "dlx-exchange";
// 死信队列名称
public static final String DEAD_LETTER_QUEUE = "dlx-queue";
// 死信路由键名称
public static final String DEAD_LETTER_ROUTING_KEY = "dlx.routing.key";
/**
* 声明延迟队列
*/
@Bean
public Queue delayQueue() {
return QueueBuilder.durable(DELAY_QUEUE_NAME)
.deadLetterExchange(DEAD_LETTER_EXCHANGE)
.deadLetterRoutingKey(DEAD_LETTER_ROUTING_KEY)
.build();
}
/**
* 声明延迟交换机
*/
@Bean
public CustomExchange delayExchange() {
return new CustomExchange(DELAY_EXCHANGE_NAME, "x-delayed-message",
true, false, Map.of("x-delayed-type", "direct"));
}
/**
* 将延迟队列绑定到延迟交换机
*/
@Bean
public Binding delayBinding(Queue delayQueue, CustomExchange delayExchange) {
return BindingBuilder.bind(delayQueue).to(delayExchange).with(DELAY_ROUTING_KEY).noargs();
}
/**
* 声明死信队列
*/
@Bean
public Queue deadLetterQueue() {
return new Queue(DEAD_LETTER_QUEUE);
}
/**
* 声明死信交换机
*/
@Bean
public DirectExchange deadLetterExchange() {
return new DirectExchange(DEAD_LETTER_EXCHANGE);
}
/**
* 将死信队列绑定到死信交换机
*/
@Bean
public Binding deadLetterBinding(Queue deadLetterQueue, DirectExchange deadLetterExchange) {
return BindingBuilder.bind(deadLetterQueue).to(deadLetterExchange).with(DEAD_LETTER_ROUTING_KEY);
}
}

43
dk-example/test-mq/src/main/java/org/dromara/stream/consumer/RabbitConsumer.java

@ -1,43 +0,0 @@
package org.dromara.stream.consumer;
import lombok.extern.slf4j.Slf4j;
import org.dromara.stream.config.RabbitConfig;
import org.dromara.stream.config.RabbitTtlQueueConfig;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.stereotype.Component;
/**
* @author xbhog
* @date 2024年5月18日
*/
@Slf4j
@Component
public class RabbitConsumer {
/**
* 普通消息
*/
@RabbitListener(queues = RabbitConfig.QUEUE_NAME)
public void listenQueue(Message message) {
log.info("【消费者】Start consuming data:{}",new String(message.getBody()));
}
/**
* 处理延迟队列消息
*/
@RabbitListener(queues = RabbitTtlQueueConfig.DELAY_QUEUE_NAME)
public void receiveDelayMessage(String message){
log.info("【消费者】Received delayed message:{}",message);
}
/**
* 处理死信队列消息
* 当消息在延迟队列中未能被正确处理例如因消费者逻辑错误超时未ACK等原因
* 它会被自动转发到死信队列中以便后续的特殊处理或重新尝试
*/
@RabbitListener(queues = RabbitTtlQueueConfig.DEAD_LETTER_QUEUE)
public void receiveDeadMessage(String message){
log.info("【消费者】Received dead message:{}",message);
}
}

20
dk-example/test-mq/src/main/java/org/dromara/stream/controller/PushMessageController.java

@ -15,10 +15,6 @@ import org.springframework.web.bind.annotation.RestController;
@RequestMapping @RequestMapping
public class PushMessageController { public class PushMessageController {
@Autowired
private NormalRabbitProducer normalRabbitProducer;
@Autowired
private DelayRabbitProducer delayRabbitProducer;
@Autowired @Autowired
private NormalRocketProducer normalRocketProducer; private NormalRocketProducer normalRocketProducer;
@Autowired @Autowired
@ -26,22 +22,6 @@ public class PushMessageController {
@Autowired @Autowired
private KafkaNormalProducer normalKafkaProducer; private KafkaNormalProducer normalKafkaProducer;
/**
* rabbitmq 普通消息
*/
@GetMapping("/rabbit/send")
public void rabbitSend() {
normalRabbitProducer.send("hello normal RabbitMsg");
}
/**
* rabbitmq 延迟队列消息
*/
@GetMapping("/rabbit/sendDelay")
public void rabbitSendDelay(long delay) {
delayRabbitProducer.sendDelayMessage("Hello ttl RabbitMsg", delay);
}
/** /**
* rocketmq 发送消息 * rocketmq 发送消息
* 需要手动创建相关的Topic和group * 需要手动创建相关的Topic和group

30
dk-example/test-mq/src/main/java/org/dromara/stream/producer/DelayRabbitProducer.java

@ -1,30 +0,0 @@
package org.dromara.stream.producer;
import lombok.extern.slf4j.Slf4j;
import org.dromara.stream.config.RabbitTtlQueueConfig;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author xbhog
* @date 2024/05/25 17:15
**/
@Slf4j
@Component
public class DelayRabbitProducer {
@Autowired
private RabbitTemplate rabbitTemplate;
public void sendDelayMessage(String message, long delay) {
rabbitTemplate.convertAndSend(
RabbitTtlQueueConfig.DELAY_EXCHANGE_NAME,
RabbitTtlQueueConfig.DELAY_ROUTING_KEY, message, message1 -> {
message1.getMessageProperties().setDelayLong(delay);
return message1;
});
log.info("【生产者】Delayed message send: " + message);
}
}

23
dk-example/test-mq/src/main/java/org/dromara/stream/producer/NormalRabbitProducer.java

@ -1,23 +0,0 @@
package org.dromara.stream.producer;
import lombok.extern.slf4j.Slf4j;
import org.dromara.stream.config.RabbitConfig;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* @author xbhog
*/
@Slf4j
@Component
public class NormalRabbitProducer {
@Autowired
private RabbitTemplate rabbitTemplate;
public void send(String message) {
rabbitTemplate.convertAndSend(RabbitConfig.EXCHANGE_NAME, RabbitConfig.ROUTING_KEY, message);
log.info("【生产者】Message send: " + message);
}
}

2
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/IDeviceQrtzService.java

@ -54,5 +54,5 @@ public interface IDeviceQrtzService {
Boolean fileSort(Long id ,Integer sort); Boolean fileSort(Long id ,Integer sort);
//通知启用飞行任务 //通知启用飞行任务
DeviceQrtzFileEntity getDeviceQrtzFileEntity(DeviceDTO device) throws SQLException; void getDeviceQrtzFileEntity(DeviceDTO device);
} }

47
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/DeviceQrtzServiceImpl.java

@ -13,6 +13,7 @@ import org.dromara.common.core.constant.BusinessConstants;
import org.dromara.common.core.constant.DeviceQrtzConstants; import org.dromara.common.core.constant.DeviceQrtzConstants;
import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.common.mybatis.core.page.TableDataInfo;
import org.dromara.common.redis.utils.RedisOpsUtils;
import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.common.satoken.utils.LoginHelper;
import org.dromara.common.sdk.cloudapi.wayline.*; import org.dromara.common.sdk.cloudapi.wayline.*;
@ -48,6 +49,10 @@ import java.time.LocalDateTime;
import java.time.LocalTime; import java.time.LocalTime;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.*; import java.util.*;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/** /**
* @auther yq * @auther yq
@ -70,6 +75,8 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
// @DubboReference // @DubboReference
// private RemoteBusinessTaskService remoteBusinessTaskService; // private RemoteBusinessTaskService remoteBusinessTaskService;
private ExecutorService executor = Executors.newFixedThreadPool(5);
@Autowired @Autowired
RemoteBusinessTaskFeign remoteBusinessTaskFeign; RemoteBusinessTaskFeign remoteBusinessTaskFeign;
@ -272,8 +279,18 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
@Override @Override
public DeviceQrtzFileEntity getDeviceQrtzFileEntity(DeviceDTO device) { public void getDeviceQrtzFileEntity(DeviceDTO device) {
if(StrUtil.isNotEmpty(device.getDeviceSn())){ if (!StrUtil.isNotEmpty(device.getDeviceSn())) {
return;
}
if (RedisOpsUtils.checkExist(device.getDeviceSn())) {
return;
}
RedisOpsUtils.setWithExpire(device.getDeviceSn(), device, 180);
executor.execute(new Runnable() {
@Override
public void run() {
try {
// 获取当前日期 // 获取当前日期
LocalDateTime currentDate = LocalDateTime.now(); LocalDateTime currentDate = LocalDateTime.now();
// 定义日期格式 // 定义日期格式
@ -282,29 +299,29 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
// 格式化当前日期 // 格式化当前日期
String formattedDate = currentDate.format(formatter); String formattedDate = currentDate.format(formatter);
List<DeviceQrtzFileEntity> qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper<DeviceQrtzFileEntity>().eq("device_sn", device.getDeviceSn()).eq("exec_date", formattedDate).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort")); List<DeviceQrtzFileEntity> qrtzFileEntityList = deviceQrtzFileMapper.selectList(new QueryWrapper<DeviceQrtzFileEntity>().eq("device_sn", device.getDeviceSn()).eq("exec_date", formattedDate).eq("status", DeviceQrtzConstants.QRTZ_FILE_STATUS_1).orderByAsc("sort"));
if(!qrtzFileEntityList.isEmpty()){ if (!qrtzFileEntityList.isEmpty()) {
DeviceQrtzFileEntity deviceQrtzFileEntity = qrtzFileEntityList.get(0); DeviceQrtzFileEntity deviceQrtzFileEntity = qrtzFileEntityList.get(0);
List<DeviceQrtzDateEntity> qrtzDateEntityList = deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(deviceQrtzFileEntity.getQrtzId()); List<DeviceQrtzDateEntity> qrtzDateEntityList = deviceQrtzDateMapper.listDeviceQrtzDateByQrtzAndDate(deviceQrtzFileEntity.getQrtzId());
if(!qrtzDateEntityList.isEmpty()){ if (!qrtzDateEntityList.isEmpty()) {
// 获取当前日期和时间 // 获取当前日期和时间
for (DeviceQrtzDateEntity qrtzDate : qrtzDateEntityList) { for (DeviceQrtzDateEntity qrtzDate : qrtzDateEntityList) {
if (!currentDate.isBefore(Convert.toLocalDateTime(qrtzDate.getStartDate())) && !currentDate.isAfter(Convert.toLocalDateTime(qrtzDate.getEndDate()))){ if (!currentDate.isBefore(Convert.toLocalDateTime(qrtzDate.getStartDate())) && !currentDate.isAfter(Convert.toLocalDateTime(qrtzDate.getEndDate()))) {
//获取航线数据发送之类 //获取航线数据发送之类
WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId())); WaylineFileEntity waylineFileEntity = waylineFileMapper.selectOne(new LambdaQueryWrapper<WaylineFileEntity>().eq(WaylineFileEntity::getWaylineId, deviceQrtzFileEntity.getWaylineId()));
if(waylineFileEntity == null){ if (waylineFileEntity == null) {
//更改为异常,当前航线不存在 //更改为异常,当前航线不存在
deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0); deviceQrtzFileEntity.setStatus(DeviceQrtzConstants.QRTZ_FILE_STATUS_0);
deviceQrtzFileMapper.updateById(deviceQrtzFileEntity); deviceQrtzFileMapper.updateById(deviceQrtzFileEntity);
continue; continue;
} }
//获取是否是工单航线,是修改状态 //获取是否是工单航线,是修改状态
remoteBusinessTaskFeign.updateTaskStatus(deviceQrtzFileEntity.getWaylineId(), BusinessConstants.TASK_STATUS_2,null,null); // remoteBusinessTaskService.updateTaskStatus(deviceQrtzFileEntity.getWaylineId(), BusinessConstants.TASK_STATUS_2, null, null);
CreateJobParam createJobParam = new CreateJobParam(); CreateJobParam createJobParam = new CreateJobParam();
try { try {
createJobParam.setName(deviceQrtzFileEntity.getWaylineName()+""+currentDate.format(formatterS)); createJobParam.setName(deviceQrtzFileEntity.getWaylineName() + "" + currentDate.format(formatterS));
createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId()); createJobParam.setFileId(deviceQrtzFileEntity.getWaylineId());
createJobParam.setDockSn(device.getDeviceSn()); createJobParam.setDockSn(device.getDeviceSn());
createJobParam.setWaylineType(WaylineTypeEnum.find(waylineFileEntity.getTemplateTypes())); createJobParam.setWaylineType(WaylineTypeEnum.find(Integer.parseInt(waylineFileEntity.getTemplateTypes())));
createJobParam.setTaskType(TaskTypeEnum.IMMEDIATE); createJobParam.setTaskType(TaskTypeEnum.IMMEDIATE);
createJobParam.setJobId(UUID.randomUUID().toString()); createJobParam.setJobId(UUID.randomUUID().toString());
//createJobParam.setRthAltitude(); //createJobParam.setRthAltitude();
@ -312,19 +329,21 @@ public class DeviceQrtzServiceImpl implements IDeviceQrtzService {
createJobParam.setJobType(WaylineJobTypeEnum.WISDOM_TASK); createJobParam.setJobType(WaylineJobTypeEnum.WISDOM_TASK);
createJobParam.setWaylinePrecisionType(WaylinePrecisionTypeEnum.RTK); createJobParam.setWaylinePrecisionType(WaylinePrecisionTypeEnum.RTK);
createJobParam.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME); createJobParam.setOutOfControlAction(OutOfControlActionEnum.RETURN_TO_HOME);
flightTaskService.publishFlightTask(device.getWorkspaceId(),createJobParam); createJobParam.setRthAltitude(120);
}catch (Exception e){ flightTaskService.publishFlightTask(device.getWorkspaceId(), createJobParam,deviceQrtzFileEntity.getNickName());
} catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
} }
} }
} }
} catch (Exception e) {
throw new RuntimeException(e);
} }
return null; }
});
} }
} }

13
dk-modules/sample/src/main/java/org/dromara/sample/manage/service/impl/SDKDeviceService.java

@ -59,7 +59,6 @@ public class SDKDeviceService extends AbstractDeviceService {
@Autowired @Autowired
private IDeviceQrtzService deviceQrtzService; private IDeviceQrtzService deviceQrtzService;
private ExecutorService executor = Executors.newFixedThreadPool(5);
@Override @Override
public TopicStatusResponse<MqttReply> updateTopoOnline(TopicStatusRequest<UpdateTopo> request, MessageHeaders headers) { public TopicStatusResponse<MqttReply> updateTopoOnline(TopicStatusRequest<UpdateTopo> request, MessageHeaders headers) {
@ -156,19 +155,11 @@ public class SDKDeviceService extends AbstractDeviceService {
if (StringUtils.hasText(device.getChildDeviceSn())) { if (StringUtils.hasText(device.getChildDeviceSn())) {
deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren); deviceService.getDeviceBySn(device.getChildDeviceSn()).ifPresent(device::setChildren);
} }
if(request.getData().getDroneChargeState() != null if(request.getData().getModeCode() != null && request.getData().getModeCode().getCode() == 0 && request.getData().getDroneChargeState() != null
&& request.getData().getDroneChargeState().getState() == false && request.getData().getDroneChargeState().getState() == false
&& request.getData().getDroneChargeState().getCapacityPercent() >= 80){ && request.getData().getDroneChargeState().getCapacityPercent() >= 80){
executor.execute(new Runnable() {
@Override
public void run() {
try {
deviceQrtzService.getDeviceQrtzFileEntity(device); deviceQrtzService.getDeviceQrtzFileEntity(device);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
});
} }
deviceRedisService.setDeviceOnline(device); deviceRedisService.setDeviceOnline(device);

2
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/IFlightTaskService.java

@ -25,6 +25,8 @@ public interface IFlightTaskService {
*/ */
HttpResultResponse publishFlightTask(String workspaceId,CreateJobParam param) throws SQLException; HttpResultResponse publishFlightTask(String workspaceId,CreateJobParam param) throws SQLException;
HttpResultResponse publishFlightTask(String workspaceId,CreateJobParam param,String userName) throws SQLException;
/** /**
* Issue wayline mission to the dock. * Issue wayline mission to the dock.
* @param waylineJob * @param waylineJob

32
dk-modules/sample/src/main/java/org/dromara/sample/wayline/service/impl/FlightTaskServiceImpl.java

@ -259,6 +259,38 @@ public class FlightTaskServiceImpl extends AbstractWaylineService implements IFl
return HttpResultResponse.success(); return HttpResultResponse.success();
} }
@Override
public HttpResultResponse publishFlightTask(String workspaceId,CreateJobParam param,String username) throws SQLException {
fillImmediateTime(param);
for (Long taskDay : param.getTaskDays()) {
LocalDate date = LocalDate.ofInstant(Instant.ofEpochSecond(taskDay), ZoneId.systemDefault());
for (List<Long> taskPeriod : param.getTaskPeriods()) {
long beginTime = LocalDateTime.of(date, LocalTime.ofInstant(Instant.ofEpochSecond(taskPeriod.get(0)), ZoneId.systemDefault()))
.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();
long endTime = taskPeriod.size() > 1 ?
LocalDateTime.of(date, LocalTime.ofInstant(Instant.ofEpochSecond(taskPeriod.get(1)), ZoneId.systemDefault()))
.atZone(ZoneId.systemDefault()).toInstant().toEpochMilli() : beginTime;
if (TaskTypeEnum.IMMEDIATE != param.getTaskType() && endTime < System.currentTimeMillis()) {
continue;
}
Optional<WaylineJobDTO> waylineJobOpt = waylineJobService.createWaylineJob(param, workspaceId, username, new Date(beginTime), new Date(endTime));
if (waylineJobOpt.isEmpty()) {
throw new SQLException("无法创建路线作业。");
}
WaylineJobDTO waylineJob = waylineJobOpt.get();
// If it is a conditional task type, add conditions to the job parameters.
addConditions(waylineJob, param, beginTime, endTime);
HttpResultResponse response = this.publishOneFlightTask(waylineJob);
if (HttpResultResponse.CODE_SUCCESS != response.getCode()) {
return response;
}
}
}
return HttpResultResponse.success();
}
public HttpResultResponse publishOneFlightTask(WaylineJobDTO waylineJob) throws SQLException { public HttpResultResponse publishOneFlightTask(WaylineJobDTO waylineJob) throws SQLException {

4
pom.xml

@ -84,10 +84,10 @@
<profiles> <profiles>
<profile> <profile>
<id>dev</id> <id>wuyuan</id>
<properties> <properties>
<!-- 环境标识,需要与配置文件的名称相对应 --> <!-- 环境标识,需要与配置文件的名称相对应 -->
<profiles.active>dev</profiles.active> <profiles.active>wuyuan</profiles.active>
<nacos.server>127.0.0.1:8848</nacos.server> <nacos.server>127.0.0.1:8848</nacos.server>
<nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group> <nacos.discovery.group>DEFAULT_GROUP</nacos.discovery.group>
<nacos.config.group>DEFAULT_GROUP</nacos.config.group> <nacos.config.group>DEFAULT_GROUP</nacos.config.group>

Loading…
Cancel
Save