Search in sources :

Example 1 with TaskQueue

use of com.dtp.core.support.TaskQueue in project dynamic-tp by dromara.

the class DtpPostProcessor method postProcessAfterInitialization.

@Override
public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
    if (!(bean instanceof ThreadPoolExecutor)) {
        return bean;
    }
    if (bean instanceof DtpExecutor) {
        DtpExecutor dtpExecutor = (DtpExecutor) bean;
        if (bean instanceof EagerDtpExecutor) {
            ((TaskQueue) dtpExecutor.getQueue()).setExecutor((EagerDtpExecutor) dtpExecutor);
        }
        registerDtp(dtpExecutor);
        return dtpExecutor;
    }
    ApplicationContext applicationContext = ApplicationContextHolder.getInstance();
    DynamicTp dynamicTp;
    try {
        dynamicTp = applicationContext.findAnnotationOnBean(beanName, DynamicTp.class);
        if (dynamicTp == null) {
            return bean;
        }
    } catch (NoSuchBeanDefinitionException e) {
        log.error("There is no bean with the given name {}", beanName, e);
        return bean;
    }
    String poolName = StringUtils.isNotBlank(dynamicTp.value()) ? dynamicTp.value() : beanName;
    registerCommon(poolName, (ThreadPoolExecutor) bean);
    return bean;
}
Also used : ApplicationContext(org.springframework.context.ApplicationContext) DtpExecutor(com.dtp.core.thread.DtpExecutor) EagerDtpExecutor(com.dtp.core.thread.EagerDtpExecutor) TaskQueue(com.dtp.core.support.TaskQueue) ThreadPoolExecutor(java.util.concurrent.ThreadPoolExecutor) DynamicTp(com.dtp.core.support.DynamicTp) NoSuchBeanDefinitionException(org.springframework.beans.factory.NoSuchBeanDefinitionException) EagerDtpExecutor(com.dtp.core.thread.EagerDtpExecutor)

Aggregations

DynamicTp (com.dtp.core.support.DynamicTp)1 TaskQueue (com.dtp.core.support.TaskQueue)1 DtpExecutor (com.dtp.core.thread.DtpExecutor)1 EagerDtpExecutor (com.dtp.core.thread.EagerDtpExecutor)1 ThreadPoolExecutor (java.util.concurrent.ThreadPoolExecutor)1 NoSuchBeanDefinitionException (org.springframework.beans.factory.NoSuchBeanDefinitionException)1 ApplicationContext (org.springframework.context.ApplicationContext)1