- 调度线程池隔离,拆分为"Fast"和"Slow"两个线程池,1分钟窗口期内任务耗时达500ms超过10次,该窗口期内判定为慢任务,慢任务自动降级进入"Slow"线程池,避免耗尽调度线程,提高系统稳定性;2.0.2
parent
f83d03f78a
commit
8658f8d853
@ -0,0 +1,58 @@
|
|||||||
|
package com.xxl.job.admin.core.quartz;
|
||||||
|
|
||||||
|
import org.quartz.SchedulerConfigException;
|
||||||
|
import org.quartz.spi.ThreadPool;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* single thread pool, for async trigger
|
||||||
|
*
|
||||||
|
* @author xuxueli 2019-03-06
|
||||||
|
*/
|
||||||
|
public class XxlJobThreadPool implements ThreadPool {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean runInThread(Runnable runnable) {
|
||||||
|
|
||||||
|
// async run
|
||||||
|
runnable.run();
|
||||||
|
return true;
|
||||||
|
|
||||||
|
//return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int blockForAvailableThreads() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void initialize() throws SchedulerConfigException {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void shutdown(boolean waitForJobsToComplete) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPoolSize() {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setInstanceId(String schedInstId) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setInstanceName(String schedName) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// support
|
||||||
|
public void setThreadCount(int count) {
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in new issue