下发任务

segment2.0
beeajax 2 years ago
parent 6acba2661e
commit bd21350507

@ -1,12 +1,21 @@
package com.docus.server.common; package com.docus.server.common;
import com.docus.core.util.json.JSON;
import com.docus.server.common.netty.server.ChannelRepository;
import com.docus.server.dto.scheduling.management.schterminator.NettyTerminatorDTO;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.scheduling.annotation.Scheduled; import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Map;
import java.util.Set;
@Component @Component
@Slf4j @Slf4j
public class SchedulerTask { public class SchedulerTask {
@Resource
private ChannelRepository channelRepository;
//定时任务 //定时任务
// 5 * * * * ? 在每分钟的5秒执行 // 5 * * * * ? 在每分钟的5秒执行
@ -14,6 +23,19 @@ public class SchedulerTask {
public void scheduleTask() { public void scheduleTask() {
try { try {
log.info("定时任务: 开始执行"); log.info("定时任务: 开始执行");
Map<String, NettyTerminatorDTO> ipToTerminatorCacheMap = channelRepository.getIpToTerminatorCacheMap();
Set<String> keySet = ipToTerminatorCacheMap.keySet();
for (String clientIp : keySet) {
NettyTerminatorDTO nettyTerminatorDTO = ipToTerminatorCacheMap.get(clientIp);
System.out.println(JSON.toJSON(nettyTerminatorDTO));
}
//todo:执行业务 //todo:执行业务
log.info("定时任务: 执行完毕"); log.info("定时任务: 执行完毕");
} catch (Exception e) { } catch (Exception e) {

@ -64,10 +64,18 @@ public class ChannelRepository {
return IP_CHANNEL_CACHE_MAP.get(key); return IP_CHANNEL_CACHE_MAP.get(key);
} }
public NettyTerminatorDTO getTerminatorByIp(String key) {
return IP_TERMINATOR_CACHE_MAP.get(key);
}
public Map<String, Channel> getIpToChannelCacheMap() { public Map<String, Channel> getIpToChannelCacheMap() {
return IP_CHANNEL_CACHE_MAP; return IP_CHANNEL_CACHE_MAP;
} }
public Map<String, NettyTerminatorDTO> getIpToTerminatorCacheMap() {
return IP_TERMINATOR_CACHE_MAP;
}
/** /**
* 线 * 线
*/ */

@ -0,0 +1,42 @@
package com.docus.server.common.process;
import com.docus.log.context.TrackContext;
import com.docus.log.processor.AbstractProcessor;
import com.docus.server.common.netty.server.ChannelRepository;
import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.NettyTerminatorDTO;
import com.docus.server.service.ISchTerminatorService;
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
import javax.annotation.Resource;
/**
* channel
*/
public class ChannelProcessor extends AbstractProcessor {
@Resource
private ChannelRepository channelRepository;
@Resource
private ISchTerminatorService iSchTerminatorService;
@Override
protected Object doProcess(TrackContext context) {
return logProcess(context);
}
private boolean logProcess(TrackContext context) {
boolean error = context.isError();
EditSchTerminatorDTO terminatorDTO = (EditSchTerminatorDTO) context.getArgs()[0];
if (!error) {
SchTerminatorVO terminatorVO = iSchTerminatorService.findById(String.valueOf(terminatorDTO.getId()));
NettyTerminatorDTO nettyTerminatorDTO = channelRepository.getTerminatorByIp(terminatorVO.getTerminatorIp());
nettyTerminatorDTO.setOnlyCollectorIds(terminatorDTO.getOnlyCollectorIds());
nettyTerminatorDTO.setPriorityCollectorIds(terminatorDTO.getPriorityCollectorIds());
}
return error;
}
}

@ -2,8 +2,10 @@ package com.docus.server.controller;
import com.docus.infrastructure.web.request.SearchDTO; import com.docus.infrastructure.web.request.SearchDTO;
import com.docus.infrastructure.web.response.PageResult; import com.docus.infrastructure.web.response.PageResult;
import com.docus.log.annotation.TrackGroup;
import com.docus.server.api.scheduling.management.SchTerminatorApi; import com.docus.server.api.scheduling.management.SchTerminatorApi;
import com.docus.server.common.netty.server.ChannelRepository; import com.docus.server.common.netty.server.ChannelRepository;
import com.docus.server.common.process.ChannelProcessor;
import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminatorDTO; import com.docus.server.dto.scheduling.management.schterminator.AddSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.DeleteSchTerminatorDTO; import com.docus.server.dto.scheduling.management.schterminator.DeleteSchTerminatorDTO;
import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO; import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminatorDTO;
@ -65,6 +67,7 @@ public class SchTerminatorController implements SchTerminatorApi {
* @param editSchTerminatorDTO * @param editSchTerminatorDTO
* @return * @return
*/ */
@TrackGroup(group = "SchTerminatorController", processor = ChannelProcessor.class)
@Override @Override
public boolean edit(EditSchTerminatorDTO editSchTerminatorDTO) { public boolean edit(EditSchTerminatorDTO editSchTerminatorDTO) {
return iSchTerminatorService.edit(editSchTerminatorDTO); return iSchTerminatorService.edit(editSchTerminatorDTO);

@ -6,6 +6,7 @@ import com.docus.server.dto.scheduling.management.schterminator.EditSchTerminato
import com.docus.server.entity.scheduling.management.SchTerminator; import com.docus.server.entity.scheduling.management.SchTerminator;
import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO; import com.docus.server.vo.scheduling.management.schterminator.SchTerminatorVO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.MappingTarget;
import org.mapstruct.Mappings; import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
@ -26,7 +27,7 @@ public interface SchTerminatorConvert {
SchTerminator convertDO(AddSchTerminatorDTO addSchTerminatorDTO); SchTerminator convertDO(AddSchTerminatorDTO addSchTerminatorDTO);
@Mappings({}) @Mappings({})
SchTerminator convertDO(EditSchTerminatorDTO editSchTerminatorDTO); SchTerminator convertDO(EditSchTerminatorDTO editSchTerminatorDTO, @MappingTarget SchTerminator schTerminator1);
@Mappings({}) @Mappings({})
SchTerminatorVO convertVO(SchTerminator schTerminator); SchTerminatorVO convertVO(SchTerminator schTerminator);

@ -99,7 +99,9 @@ public class SchTerminatorServiceImpl implements ISchTerminatorService {
*/ */
@Override @Override
public boolean edit(EditSchTerminatorDTO editSchTerminatorDTO) { public boolean edit(EditSchTerminatorDTO editSchTerminatorDTO) {
SchTerminator schTerminator = SchTerminatorConvert.INSTANCE.convertDO(editSchTerminatorDTO); Long id = editSchTerminatorDTO.getId();
SchTerminator schTerminatorDO = iSchTerminatorDao.findById(id);
SchTerminator schTerminator = SchTerminatorConvert.INSTANCE.convertDO(editSchTerminatorDTO, schTerminatorDO);
return iSchTerminatorDao.edit(schTerminator); return iSchTerminatorDao.edit(schTerminator);
} }

Loading…
Cancel
Save