All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alibaba.easyretry.memory.MemoryAutoConfiguration Maven / Gradle / Ivy

The newest version!
package com.alibaba.easyretry.memory;

import com.alibaba.easyretry.common.RetryConfiguration;
import com.alibaba.easyretry.common.RetryContainer;
import com.alibaba.easyretry.common.RetryExecutor;
import com.alibaba.easyretry.core.access.MemoryRetryTaskAccess;
import com.alibaba.easyretry.core.container.SimpleRetryContainer;
import com.alibaba.easyretry.memory.config.EasyRetryMemoryCompatibleProperties;
import com.alibaba.easyretry.starter.common.CommonAutoConfiguration;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;

/**
 * @author Created by wuhao on 2021/2/19.
 */
@Configuration
@Slf4j
@EnableConfigurationProperties(EasyRetryMemoryCompatibleProperties.class)
@ConditionalOnProperty(name = "spring.easyretry.memory.enabled", havingValue = "true")
public class MemoryAutoConfiguration extends CommonAutoConfiguration {

	@Autowired
	private EasyRetryMemoryCompatibleProperties easyRetryMemoryCompatibleProperties;

	@Bean
	@ConditionalOnMissingBean(MemoryRetryTaskAccess.class)
	public MemoryRetryTaskAccess retryTaskAccess() {
		return new MemoryRetryTaskAccess();
	}

	@Bean(initMethod = "start")
	public RetryContainer retryContainer(
		RetryConfiguration configuration, RetryExecutor defaultRetryExecutor) {
		log.warn("RetryConfiguration start");
		return new SimpleRetryContainer(
			configuration,
			defaultRetryExecutor);
	}

	@Override
	public Integer getMaxRetryTimes() {
		return easyRetryMemoryCompatibleProperties.getMaxRetryTimes();
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy