rev:定时任务线程修复
This commit is contained in:
@@ -28,6 +28,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
@RestController
|
@RestController
|
||||||
@Api(hidden = true)
|
@Api(hidden = true)
|
||||||
@SpringBootApplication(exclude = {
|
@SpringBootApplication(exclude = {
|
||||||
|
QuartzAutoConfiguration.class,
|
||||||
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
|
org.springframework.boot.autoconfigure.security.servlet.SecurityAutoConfiguration.class
|
||||||
})
|
})
|
||||||
@ServletComponentScan //https://blog.csdn.net/qq_36850813/article/details/101194250
|
@ServletComponentScan //https://blog.csdn.net/qq_36850813/article/details/101194250
|
||||||
|
|||||||
@@ -2,18 +2,22 @@ package org.nl.system.service.quartz.utils;
|
|||||||
|
|
||||||
import cn.hutool.core.util.IdUtil;
|
import cn.hutool.core.util.IdUtil;
|
||||||
import cn.hutool.core.util.StrUtil;
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import com.yomahub.tlog.task.quartz.TLogQuartzJobBean;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.config.thread.ThreadPoolExecutorUtil;
|
|
||||||
import org.nl.common.utils.RedisUtils;
|
import org.nl.common.utils.RedisUtils;
|
||||||
import org.nl.common.utils.ThrowableUtil;
|
import org.nl.common.utils.ThrowableUtil;
|
||||||
import org.nl.config.SpringContextHolder;
|
import org.nl.config.SpringContextHolder;
|
||||||
|
import org.nl.config.thread.ThreadPoolExecutorUtil;
|
||||||
import org.nl.system.service.quartz.ISysQuartzJobService;
|
import org.nl.system.service.quartz.ISysQuartzJobService;
|
||||||
import org.nl.system.service.quartz.dao.SysQuartzJob;
|
import org.nl.system.service.quartz.dao.SysQuartzJob;
|
||||||
import org.nl.system.service.quartz.dao.SysQuartzLog;
|
import org.nl.system.service.quartz.dao.SysQuartzLog;
|
||||||
import org.nl.system.service.quartz.dao.mapper.SysQuartzLogMapper;
|
import org.nl.system.service.quartz.dao.mapper.SysQuartzLogMapper;
|
||||||
import org.nl.system.service.quartz.impl.SysQuartzJobServiceImpl;
|
import org.nl.system.service.quartz.impl.SysQuartzJobServiceImpl;
|
||||||
|
import org.quartz.DisallowConcurrentExecution;
|
||||||
import org.quartz.JobExecutionContext;
|
import org.quartz.JobExecutionContext;
|
||||||
import org.quartz.JobExecutionException;
|
import org.quartz.JobExecutionException;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.scheduling.annotation.Async;
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.scheduling.quartz.QuartzJobBean;
|
import org.springframework.scheduling.quartz.QuartzJobBean;
|
||||||
|
|
||||||
@@ -28,14 +32,19 @@ import java.util.concurrent.ThreadPoolExecutor;
|
|||||||
@Async
|
@Async
|
||||||
@SuppressWarnings({"unchecked", "all"})
|
@SuppressWarnings({"unchecked", "all"})
|
||||||
@Slf4j
|
@Slf4j
|
||||||
public class ExecutionJob extends QuartzJobBean {
|
@DisallowConcurrentExecution
|
||||||
|
public class ExecutionJob extends TLogQuartzJobBean {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 该处仅供参考
|
* 该处仅供参考
|
||||||
*/
|
*/
|
||||||
private final static ThreadPoolExecutor EXECUTOR = ThreadPoolExecutorUtil.getPoll();
|
@Autowired
|
||||||
|
@Qualifier("threadPoolExecutor")
|
||||||
|
private ThreadPoolExecutor EXECUTOR;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
|
public void executeTask(JobExecutionContext context) throws JobExecutionException {
|
||||||
SysQuartzJob quartzJob = (SysQuartzJob) context.getMergedJobDataMap().get(SysQuartzJob.JOB_KEY);
|
SysQuartzJob quartzJob = (SysQuartzJob) context.getMergedJobDataMap().get(SysQuartzJob.JOB_KEY);
|
||||||
// 获取spring bean
|
// 获取spring bean
|
||||||
ISysQuartzJobService quartzJobService = SpringContextHolder.getBean(SysQuartzJobServiceImpl.class);
|
ISysQuartzJobService quartzJobService = SpringContextHolder.getBean(SysQuartzJobServiceImpl.class);
|
||||||
@@ -45,7 +54,7 @@ public class ExecutionJob extends QuartzJobBean {
|
|||||||
String uuid = quartzJob.getUuid();
|
String uuid = quartzJob.getUuid();
|
||||||
|
|
||||||
SysQuartzLog logDto = new SysQuartzLog();
|
SysQuartzLog logDto = new SysQuartzLog();
|
||||||
logDto.setLog_id(IdUtil.getSnowflake(1,1).nextIdStr());
|
logDto.setLog_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||||
logDto.setJob_name(quartzJob.getJob_name());
|
logDto.setJob_name(quartzJob.getJob_name());
|
||||||
logDto.setBean_name(quartzJob.getBean_name());
|
logDto.setBean_name(quartzJob.getBean_name());
|
||||||
logDto.setMethod_name(quartzJob.getMethod_name());
|
logDto.setMethod_name(quartzJob.getMethod_name());
|
||||||
|
|||||||
@@ -26,9 +26,11 @@ https://juejin.cn/post/6844903775631572999
|
|||||||
<include resource="log/XgAgvDeviceDriver.xml"/>
|
<include resource="log/XgAgvDeviceDriver.xml"/>
|
||||||
|
|
||||||
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
|
||||||
<encoder>
|
<!--withJansi 参数改为true-->
|
||||||
|
<withJansi>true</withJansi>
|
||||||
|
<encoder class="com.yomahub.tlog.core.enhance.logback.AspectLogbackEncoder">
|
||||||
<pattern>${log.pattern}</pattern>
|
<pattern>${log.pattern}</pattern>
|
||||||
<charset>${log.charset}</charset>
|
<!-- <charset>${log.charset}</charset>-->
|
||||||
</encoder>
|
</encoder>
|
||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
@@ -52,9 +54,9 @@ https://juejin.cn/post/6844903775631572999
|
|||||||
</appender>
|
</appender>
|
||||||
|
|
||||||
<!--异步到文件-->
|
<!--异步到文件-->
|
||||||
<appender name="asyncFileAppender" class="ch.qos.logback.classic.AsyncAppender">
|
<appender name="asyncFileAppender" class="com.yomahub.tlog.core.enhance.logback.async.AspectLogbackAsyncAppender">
|
||||||
<discardingThreshold>0</discardingThreshold>
|
<discardingThreshold>0</discardingThreshold>
|
||||||
<queueSize>200</queueSize>
|
<queueSize>500</queueSize>
|
||||||
<appender-ref ref="FILE"/>
|
<appender-ref ref="FILE"/>
|
||||||
</appender>
|
</appender>
|
||||||
<appender name="luceneAppender" class="org.nl.config.lucene.config.LuceneAppender"/>
|
<appender name="luceneAppender" class="org.nl.config.lucene.config.LuceneAppender"/>
|
||||||
|
|||||||
Reference in New Issue
Block a user