Browse Source

opt: lucene,链路追踪,MDC

master
李永德 1 year ago
parent
commit
f0de929d33
  1. 7
      lms/nladmin-system/nlsso-server/pom.xml
  2. 10
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java
  3. 13
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java
  4. 29
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java
  5. 19
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java
  6. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/TestCollector.java
  7. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java
  8. 5
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java
  9. 7
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java
  10. 16
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java
  11. 6
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java
  12. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/controller/MdBaseMaterialController.java
  13. 2
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java
  14. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java
  15. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java
  16. 4
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java
  17. 1
      lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/mapper/FJMapper.xml
  18. 90
      lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml
  19. 22
      lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml
  20. 9
      lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue
  21. 18
      lms/nladmin-ui/src/views/wms/sch/group/index.vue

7
lms/nladmin-system/nlsso-server/pom.xml

@ -355,7 +355,12 @@
<dependency>
<groupId>com.alicp.jetcache</groupId>
<artifactId>jetcache-starter-redis</artifactId>
<version>2.5.14</version>
<version>2.7.3</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>4.3.1</version>
</dependency>

10
lms/nladmin-system/nlsso-server/src/main/java/org/nl/AppRun.java

@ -3,15 +3,16 @@ package org.nl;
import cn.dev33.satoken.annotation.SaIgnore;
import com.alicp.jetcache.anno.config.EnableCreateCacheAnnotation;
import com.alicp.jetcache.anno.config.EnableMethodCache;
import lombok.extern.slf4j.Slf4j;
import org.dromara.dynamictp.core.spring.EnableDynamicTp;
import org.mybatis.spring.annotation.MapperScan;
import org.nl.common.annotation.Limit;
import org.nl.config.SpringContextHolder;
import org.slf4j.MDC;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.autoconfigure.quartz.QuartzAutoConfiguration;
import org.springframework.boot.web.servlet.ServletComponentScan;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.transaction.annotation.EnableTransactionManagement;
@ -26,10 +27,12 @@ import org.springframework.web.bind.annotation.RestController;
* @author ldjun
* @date 2021/2/22 9:20:19
*/
@Slf4j
@EnableAsync
@RestController
@EnableDynamicTp
@SpringBootApplication(exclude = {
QuartzAutoConfiguration.class,
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
})
@ServletComponentScan
@ -49,7 +52,6 @@ public class AppRun {
}
/**
* 访问首页提示
*
@ -59,6 +61,8 @@ public class AppRun {
@Limit(period = 2, count = 1)
@SaIgnore
public String index() {
MDC.put("system", "SSS");
log.info("sssss");
return "Backend service started successfully";
}
}

13
lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LogMessageConstant.java

@ -7,9 +7,17 @@ package org.nl.config.lucene;
*/
public class LogMessageConstant {
/**
*
* 标签
*/
public final static String LABEL = "label";
/**
* 时间
*/
public final static String SORT_NAME = "time";
/**
* IP
*/
public final static String IP = "ip";
/**
* 级别
*/
@ -30,6 +38,9 @@ public class LogMessageConstant {
* 日志内容
*/
public final static String FIELD_MESSAGE = "message";
/**
* tlogTraceId
*/
public final static String FIELD_TRACEID = "tlogTraceId";
// 定义颜色值
/**

29
lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/LuceneAppender.java

@ -20,9 +20,13 @@ import org.nl.common.utils.YmlConfigFileUtil;
import org.wltea.analyzer.lucene.IKAnalyzer;
import java.io.IOException;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.nio.file.Paths;
import java.util.Map;
import java.util.Properties;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class LuceneAppender extends AppenderBase<ILoggingEvent> {
@ -61,19 +65,44 @@ public class LuceneAppender extends AppenderBase<ILoggingEvent> {
Map<String, String> mdcPropertyMap = event.getMDCPropertyMap();
Document doc = new Document();
long timeStamp = event.getTimeStamp();
// 获取本机的IP地址
String ipAddress = "-";
try {
ipAddress = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
throw new RuntimeException(e);
}
String formattedDateTime = DateUtil.format(new java.util.Date(timeStamp), "yyyy-MM-dd HH:mm:ss.SSS");
doc.add(new LongPoint(LogMessageConstant.SORT_NAME, timeStamp));
doc.add(new NumericDocValuesField(LogMessageConstant.SORT_NAME, timeStamp));
doc.add(new StringField(LogMessageConstant.FIELD_LEVEL, event.getLevel().toString(), Field.Store.YES));
doc.add(new StringField(LogMessageConstant.FIELD_TIMESTAMP, formattedDateTime, Field.Store.YES));
doc.add(new StoredField(LogMessageConstant.FIELD_CLASS_NAME, event.getLoggerName()));
doc.add(new StoredField(LogMessageConstant.IP, ipAddress));
doc.add(new StoredField(LogMessageConstant.FIELD_THREAD, event.getThreadName()));
if (ObjectUtil.isNotEmpty(mdcPropertyMap) && ObjectUtil.isNotEmpty(mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID))) {
String traceId = mdcPropertyMap.get(LogMessageConstant.FIELD_TRACEID);
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, traceId, Field.Store.YES));
doc.add(new StringField(LogMessageConstant.LABEL, ObjectUtil.isNotEmpty(mdcPropertyMap.get("tag_name"))
? mdcPropertyMap.get("tag_name") : "-", Field.Store.YES));
} else {
// 定义正则表达式,匹配17位数字
String regex = "\\d{17}";
// 创建 Pattern 对象
Pattern pattern = Pattern.compile(regex);
// 创建 Matcher 对象
Matcher matcher = pattern.matcher(message);
String matchedNumber = null;
// 查找匹配的数字
while (matcher.find()) {
matchedNumber = matcher.group();
}
if (ObjectUtil.isNotEmpty(matchedNumber)) {
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, matchedNumber, Field.Store.YES));
} else {
doc.add(new StringField(LogMessageConstant.FIELD_TRACEID, "无生成链路ID", Field.Store.YES));
}
}
doc.add(new TextField(LogMessageConstant.FIELD_MESSAGE, message, Field.Store.YES));
try {
indexWriter.addDocument(doc);

19
lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/lucene/Searcher.java

@ -92,17 +92,20 @@ public class Searcher {
whereJson.get(LogMessageConstant.FIELD_LEVEL).toString()));
booleanQueryBuilder.add(termQuery, BooleanClause.Occur.MUST);
}
docs = searcher.search(booleanQueryBuilder.build(), end, sort);
List<String> list = new ArrayList<>();
TopFieldCollector collector = TopFieldCollector.create(sort, 20000, 0);
searcher.search(booleanQueryBuilder.build(), collector);
docs = collector.topDocs(pageNum*pageSize, pageSize);
ScoreDoc[] scoreDocs = docs.scoreDocs;
if (end > docs.totalHits.value) {
end = (int) docs.totalHits.value;
}
int totalSize = collector.getTotalHits();
for (int i = start; i < end; i++) {
ScoreDoc scoreDoc = scoreDocs[i];
for (ScoreDoc scoreDoc : scoreDocs) {
Document doc = reader.document(scoreDoc.doc);
String logInfo = LogMessageConstant.COLOR_YELLOW + doc.get(LogMessageConstant.FIELD_TRACEID) +
String logInfo = LogMessageConstant.COLOR_CYAN + doc.get(LogMessageConstant.LABEL) +
LogMessageConstant.COLOR_RESET + " - " +
LogMessageConstant.COLOR_BLUE + doc.get(LogMessageConstant.IP) +
LogMessageConstant.COLOR_RESET + " - " +
LogMessageConstant.COLOR_YELLOW + doc.get(LogMessageConstant.FIELD_TRACEID) +
LogMessageConstant.COLOR_RESET + " - " +
LogMessageConstant.COLOR_RED + doc.get(LogMessageConstant.FIELD_TIMESTAMP) +
LogMessageConstant.COLOR_RESET + " - " +
@ -118,7 +121,7 @@ public class Searcher {
reader.close();
JSONObject jo = new JSONObject();
jo.put("content", list);
jo.put("totalElements", docs.totalHits.value);
jo.put("totalElements", totalSize);
return jo;
}

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/config/thread/TestCollector.java

@ -11,9 +11,7 @@ import org.dromara.dynamictp.core.monitor.collector.AbstractCollector;
public class TestCollector extends AbstractCollector {
@Override
public void collect(ThreadPoolStats threadPoolStats) {
if (threadPoolStats.getPoolName().equals("el-thread")) {
System.out.println("ssssssssssssssss:" + threadPoolStats);
}
// System.out.println("ssssssssssssssss:" + threadPoolStats);
}
@Override

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/controller/param/SysParamController.java

@ -36,7 +36,6 @@ class SysParamController {
@GetMapping
@Log("查询系统参数")
//@SaCheckPermission("param:list")
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
return new ResponseEntity<>(TableDataInfo.build(paramService.queryPage(whereJson, page)), HttpStatus.OK);
@ -44,7 +43,6 @@ class SysParamController {
@PostMapping
@Log("新增系统参数")
//@SaCheckPermission("param:add")
public ResponseEntity<Object> create(@Validated @RequestBody Param param) {
paramService.create(param);
@ -53,7 +51,6 @@ class SysParamController {
@PutMapping
@Log("修改系统参数")
//@SaCheckPermission("param:edit")
public ResponseEntity<Object> update(@Validated @RequestBody Param param) {
paramService.update(param);
@ -61,7 +58,6 @@ class SysParamController {
}
@Log("删除系统参数")
//@SaCheckPermission("param:del")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
@ -72,7 +68,6 @@ class SysParamController {
@PostMapping("/getValueByCode/{code}")
@Log("根据编码获取值")
@SaIgnore
public ResponseEntity<Object> getValueByCode(@PathVariable String code) {
return new ResponseEntity<>(paramService.findByCode(code), HttpStatus.CREATED);

5
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/lucene/impl/LuceneServiceImpl.java

@ -17,10 +17,11 @@ import java.util.Map;
@Slf4j
public class LuceneServiceImpl implements LuceneService {
//日志索引目录
/**
* 日志索引目录
*/
@Value("${lucene.index.path}")
private String luceneUrl;
@Override
public Map<String, Object> getAll(JSONObject whereJson) {
JSONObject jo = new JSONObject();

7
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/param/impl/SysParamServiceImpl.java

@ -3,6 +3,10 @@ package org.nl.system.service.param.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alicp.jetcache.anno.CachePenetrationProtect;
import com.alicp.jetcache.anno.CacheType;
import com.alicp.jetcache.anno.CacheUpdate;
import com.alicp.jetcache.anno.Cached;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@ -66,6 +70,7 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
}
@Override
@CacheUpdate(name="paramCache-", key="#param.code", value="#param")
@Transactional(rollbackFor = Exception.class)
public void update(Param param) {
Param paramObj = paramMapper.selectById(param.getId());
@ -90,6 +95,8 @@ public class SysParamServiceImpl extends ServiceImpl<SysParamMapper, Param> impl
}
@Override
@CachePenetrationProtect
@Cached(name="paramCache-",key = "#code", expire = 3600, cacheType = CacheType.REMOTE)
public Param findByCode(String code) {
QueryWrapper<Param> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code", code);

16
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/config/QuartzConfig.java

@ -9,9 +9,10 @@ import org.springframework.scheduling.quartz.AdaptableJobFactory;
import org.springframework.scheduling.quartz.SchedulerFactoryBean;
import org.springframework.stereotype.Component;
import java.util.Properties;
/**
* 定时任务配置
*
* @author /
* @date 2019-01-07
*/
@ -42,17 +43,24 @@ public class QuartzConfig {
/**
* 注入scheduler到spring
*
* @param quartzJobFactory /
* @return Scheduler
* @throws Exception /
*/
@Bean(name = "scheduler")
public Scheduler scheduler(QuartzJobFactory quartzJobFactory) throws Exception {
SchedulerFactoryBean factoryBean = new SchedulerFactoryBean();
SchedulerFactoryBean factoryBean=new SchedulerFactoryBean();
//https://blog.csdn.net/YuChenIT/article/details/133344898
Properties prop = new Properties();
prop.put("org.quartz.threadPool.threadCount", "9");
factoryBean.setWaitForJobsToCompleteOnShutdown(true);
factoryBean.setQuartzProperties(prop);
factoryBean.setJobFactory(quartzJobFactory);
factoryBean.afterPropertiesSet();
Scheduler scheduler = factoryBean.getScheduler();
Scheduler scheduler=factoryBean.getScheduler();
scheduler.start();
return scheduler;
}

6
lms/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/utils/ExecutionJob.java

@ -2,6 +2,7 @@ package org.nl.system.service.quartz.utils;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.StrUtil;
import com.yomahub.tlog.task.quartz.TLogQuartzJobBean;
import lombok.extern.slf4j.Slf4j;
import org.nl.common.utils.RedisUtils;
import org.nl.common.utils.ThrowableUtil;
@ -32,7 +33,7 @@ import java.util.concurrent.ThreadPoolExecutor;
@SuppressWarnings({"unchecked", "all"})
@Slf4j
@DisallowConcurrentExecution
public class ExecutionJob extends QuartzJobBean {
public class ExecutionJob extends TLogQuartzJobBean {
/**
* 该处仅供参考
@ -41,8 +42,9 @@ public class ExecutionJob extends QuartzJobBean {
@Qualifier("threadPoolExecutor")
private ThreadPoolExecutor EXECUTOR;
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
public void executeTask(JobExecutionContext context) throws JobExecutionException {
SysQuartzJob quartzJob = (SysQuartzJob) context.getMergedJobDataMap().get(SysQuartzJob.JOB_KEY);
// 获取spring bean
ISysQuartzJobService quartzJobService = SpringContextHolder.getBean(SysQuartzJobServiceImpl.class);

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/database/material/controller/MdBaseMaterialController.java

@ -43,7 +43,6 @@ public class MdBaseMaterialController {
@PostMapping
@Log("新增物料基础信息")
//@SaCheckPermission("@el.check('mdBaseMaterial:add')")
public ResponseEntity<Object> create(@Validated @RequestBody MdBaseMaterial entity) {
mdBaseMaterialService.create(entity);
@ -52,7 +51,6 @@ public class MdBaseMaterialController {
@PutMapping
@Log("修改物料基础信息")
//@SaCheckPermission("@el.check('mdBaseMaterial:edit')")
public ResponseEntity<Object> update(@Validated @RequestBody MdBaseMaterial entity) {
mdBaseMaterialService.update(entity);
@ -60,7 +58,6 @@ public class MdBaseMaterialController {
}
@Log("删除物料基础信息")
//@SaCheckPermission("@el.check('mdBaseMaterial:del')")
@DeleteMapping
public ResponseEntity<Object> delete(@RequestBody Set<String> ids) {
@ -70,7 +67,6 @@ public class MdBaseMaterialController {
@PostMapping("/synchronize")
@Log("物料同步")
@Limit(period = 1, count = 1)
//@SaCheckPermission("materialtype:list")
public ResponseEntity<Object> synchronize(@RequestBody Map whereJson) {

2
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/ext/mes/service/impl/WmsToMesServiceImpl.java

@ -27,6 +27,7 @@ import org.nl.wms.sch.task_manage.GeneralDefinition;
import org.nl.wms.sch.task_manage.enums.GroupBindMaterialStatusEnum;
import org.nl.wms.sch.task_manage.enums.NoticeTypeEnum;
import org.nl.wms.sch.task_manage.enums.WorkOrderStatusEnum;
import org.slf4j.MDC;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
@ -73,6 +74,7 @@ public class WmsToMesServiceImpl implements WmsToMesService {
@Override
public void synchronizeMaterialInfo() {
MDC.put("system", "log");
log.info("同步物料开始");
// 获取lms数据库中的最后获取时间
// LambdaQueryWrapper<MdBaseMaterial> lmsMaterialTabQuery = new QueryWrapper<MdBaseMaterial>().lambda();

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/controller/PdmBdWorkorderController.java

@ -62,7 +62,6 @@ public class PdmBdWorkorderController {
@GetMapping("/materials")
@Log("查询物料基础信息")
//@SaCheckPermission("@el.check('mdBaseMaterial:list')")
public ResponseEntity<Object> queryMaterials(MdBaseMaterialQuery whereJson, PageQuery page) {
return new ResponseEntity<>(TableDataInfo.build(mdBaseMaterialService.queryByInventory(whereJson, page)), HttpStatus.OK);

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/pdm/workorder/service/dao/PdmBdWorkorder.java

@ -138,6 +138,7 @@ public class PdmBdWorkorder implements Serializable {
private Integer qualified_qty;
private Integer unqualified_qty;
private Integer priority;
@TableField(exist = false)
private String material_name;

4
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/group/service/impl/SchBaseVehiclematerialgroupServiceImpl.java

@ -2,6 +2,7 @@ package org.nl.wms.sch.group.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -65,6 +66,9 @@ public class SchBaseVehiclematerialgroupServiceImpl extends ServiceImpl<SchBaseV
entity.setUpdate_id(currentUserId);
entity.setUpdate_name(nickName);
entity.setUpdate_time(now);
if (ObjectUtil.isNotEmpty(entity.getOut_kiln_time())) {
entity.setIs_firing(true);
}
vehiclematerialgroupMapper.insert(entity);
}

1
lms/nladmin-system/nlsso-server/src/main/java/org/nl/wms/sch/task_manage/task/tasks/fj/mapper/FJMapper.xml

@ -13,7 +13,6 @@
WHERE (p.ing_task_code = '' OR p.ing_task_code IS NULL)
AND p.is_used = 1
AND p.point_status = '3'
AND vg.is_firing = true
AND vg.material_id = #{materialId}
AND TIMESTAMPDIFF(HOUR, vg.instorage_time, NOW()) >= ma.cooling_time
AND p.region_code IN

90
lms/nladmin-system/nlsso-server/src/main/resources/config/application.yml

@ -1,25 +1,15 @@
server:
tomcat:
relaxed-query-chars: [ '|','{','}','[',']' ] #字符问题:https://blog.csdn.net/CanYue_Yi/article/details/109182577
relaxed-path-chars: [ '|','{','}','[',']' ] #字符问题: https://blog.csdn.net/weixin_41996632/article/details/90715118
spring:
dynamic:
tp:
enabled: true # 是否启用 dynamictp,默认true
enabledCollect: true # 是否开启监控指标采集,默认true
collectorTypes: logging,test_collect # 监控数据采集器类型(logging | micrometer | internal_logging),默认micrometer
logPath: C:\log\lms # 监控日志数据路径,默认 ${user.home}/logs,采集类型非logging不用配置
monitorInterval: 8
tomcatTp: # tomcat webserver 线程池配置
threadPoolAliasName: tomcat 线程池 # 线程池别名,可选
corePoolSize: 100
maximumPoolSize: 200
keepAliveTime: 60
runTimeout: 200
queueTimeout: 100
datasource:
druid:
initial-size: 5 #初始化时建立物理连接的个数
min-idle: 15 #最小连接池数量
maxActive: 30 #最大连接池数量
maxWait: 3000 #获取连接时最大等待时间,单位毫秒
#申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
# 申请连接的时候检测,如果空闲时间大于timeBetweenEvictionRunsMillis,执行validationQuery检测连接是否有效。
test-while-idle: true
time-between-eviction-runs-millis: 300000 #既作为检测的间隔时间又作为test-while-idle执行的依据
min-evictable-idle-time-millis: 900000 #销毁线程时检测当前连接的最后活动时间和当前时间差大于该值时,关闭当前连接
@ -63,16 +53,45 @@ spring:
redis:
repositories:
enabled: false
#
# #配置 Jpa
# jpa:
# hibernate:
# ddl-auto: none
# open-in-view: true
# properties:
# hibernate:
# dialect: org.hibernate.dialect.MySQL5InnoDBDialect
# enable_lazy_load_no_trans: true
dynamic:
tp:
enabled: true # 是否启用 dynamictp,默认true
enabledCollect: true # 是否开启监控指标采集,默认true
enabled-banner: false
collectorTypes: logging,test_collect # 监控数据采集器类型(logging | micrometer | internal_logging),默认micrometer
logPath: C:\log\lms # 监控日志数据路径,默认 ${user.home}/logs,采集类型非logging不用配置
monitorInterval: 8
tomcatTp: # tomcat webserver 线程池配置
threadPoolAliasName: tomcat 线程池 # 线程池别名,可选
corePoolSize: 100
maximumPoolSize: 200
keepAliveTime: 60
runTimeout: 200
queueTimeout: 100
notifyItems: # 报警项,不配置自动会按默认值配置(变更通知、容量报警、活性报警、拒绝报警、任务超时报警)
- type: change
enabled: true
- type: capacity # 队列容量使用率,报警项类型,查看源码 NotifyTypeEnum枚举类
enabled: true
threshold: 80 # 报警阈值,默认70,意思是队列使用率达到70%告警
interval: 120 # 报警间隔(单位:s),默认120
- type: liveness # 线程池活性
enabled: true
threshold: 80 # 报警阈值,默认 70,意思是活性达到70%告警
- type: reject # 触发任务拒绝告警
enabled: true
threshold: 100 # 默认阈值10
- type: run_timeout # 任务执行超时告警
enabled: true
threshold: 100 # 默认阈值10
- type: queue_timeout # 任务排队超时告警
enabled: true
threshold: 100 # 默认阈值10
task:
pool:
# 核心线程池大小
@ -147,3 +166,24 @@ mybatis-plus:
lucene:
index:
path: D:\lucene\index
jetcache:
statIntervalMinutes: 15
areaInCacheName: false
local:
default:
type: linkedhashmap
keyConvertor: fastjson
remote:
default:
type: redis
keyConvertor: fastjson2
broadcastChannel: projectA
valueEncoder: java
valueDecoder: java
poolConfig:
minIdle: 5 # 连接池中的最小空闲连接数
maxIdle: 20 # 连接池中的最大空闲连接数
maxTotal: 50 # 连接池中的最大连接数
host: 127.0.0.1
port: 6379

22
lms/nladmin-system/nlsso-server/src/main/resources/logback-spring.xml

@ -51,7 +51,7 @@ https://juejin.cn/post/6844903775631572999
</appender>
<appender name="luceneAppender" class="org.nl.config.lucene.LuceneAppender" >
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
@ -75,6 +75,26 @@ https://juejin.cn/post/6844903775631572999
<appender-ref ref="asyncFileAppender"/>
<appender-ref ref="asyncLuceneAppender"/>
</root>
<logger name="com.baomidou.mybatisplus.core.MybatisConfiguration" level="ERROR" additivity="false">
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.redisson.command.RedisExecutor" level="ERROR" additivity="false">
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.reflections.Reflections" level="ERROR" additivity="false">
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.redisson.connection.ClientConnectionsEntry" level="ERROR" additivity="false">
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.mybatis.spring.mapper.ClassPathMapperScanner" level="ERROR" additivity="false">
<appender-ref ref="asyncLuceneAppender"/>
<appender-ref ref="asyncFileAppender"/>
</logger>
<logger name="org.springframework" level="ERROR" additivity="true">
<appender-ref ref="CONSOLE"/>
</logger>

9
lms/nladmin-ui/src/views/wms/pdm/workerorder/index.vue

@ -289,6 +289,14 @@
<el-radio :label="false"></el-radio>
</el-radio-group>
</el-form-item>
<el-form-item v-if="form.region_code === 'YZ'" label="优先级">
<el-input-number
v-model.number="form.priority"
:min="0"
:max="99"
style="width: 240px;"
/>
</el-form-item>
<el-form-item label="是否加急" prop="is_needmove">
<el-radio-group v-model="form.is_urgent" style="width: 240px">
<el-radio :label="true"></el-radio>
@ -498,6 +506,7 @@ const defaultForm = {
order_subnum: 0,
guadansum: 0,
ext_data: 0,
priority: 1,
show: false
}
export default {

18
lms/nladmin-ui/src/views/wms/sch/group/index.vue

@ -209,6 +209,24 @@
/>
</el-select>
</el-form-item>
<el-form-item label="入窑时间">
<el-date-picker
v-model="form.into_kiln_time"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 240px;"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<el-form-item label="出窑时间">
<el-date-picker
v-model="form.out_kiln_time"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
style="width: 240px;"
placeholder="选择日期时间">
</el-date-picker>
</el-form-item>
<!--<el-form-item label="是否首个流程任务">
<el-input v-model="form.is_first_flow_task" style="width: 240px;" />
</el-form-item>-->

Loading…
Cancel
Save