Spring batch 使用AOP的RetryLogic不适用于MongoItemWriter,但同样适用于我的自定义读者和作者

Spring batch 使用AOP的RetryLogic不适用于MongoItemWriter,但同样适用于我的自定义读者和作者,spring-batch,retrypolicy,Spring Batch,Retrypolicy,使用AOP的RetryLogic不适用于MongoItemWriter,但同样适用于我的自定义读者和作者 这里有什么我做错的吗 <bean id="retryAdvice" class="org.springframework.retry.interceptor.RetryOperationsInterceptor"> <property name="retryOperations" ref="taskBatchRetryTemplate" /> </bea

使用AOP的RetryLogic不适用于MongoItemWriter,但同样适用于我的自定义读者和作者 这里有什么我做错的吗

<bean id="retryAdvice"
class="org.springframework.retry.interceptor.RetryOperationsInterceptor">
    <property name="retryOperations" ref="taskBatchRetryTemplate" />
</bean>
<bean id="taskBatchRetryTemplate" class="org.springframework.retry.support.RetryTemplate">
    <property name="retryPolicy" ref="genericRetryPolicy" />
    <property name="backOffPolicy">             
        <bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
            <property name="initialInterval" value="${mongoloader.backOffPeriod.initialInterval}"/>
            <property name="maxInterval" value="${mongoloader.backOffPeriod.maxInterval}"/>
            <property name="multiplier" value="${mongoloader.backOffPeriod.multiplier}"/>
        </bean>
    </property>
    <property name="listeners">
        <bean class="com.company.ens.myload.job.StepRetryListener"/>
    </property>
</bean>

<bean id="genericRetryPolicy" class="org.springframework.retry.policy.SimpleRetryPolicy"  >
    <constructor-arg index="0" value="${mongoloader.retry.limit}"/>
    <constructor-arg index="1">
        <map>
            <entry key="org.springframework.data.mongodb.CannotGetMongoDbConnectionException" value="true"/>
            <entry key="org.springframework.jdbc.CannotGetJdbcConnectionException" value="true"/>               
            <!--  Just included the below exception for testing purpose, needs to be removed -->
            <entry key="java.io.FileNotFoundException" value="true"/>               
            <entry key="org.springframework.dao.DuplicateKeyException" value="true"/>               
        </map>
    </constructor-arg>
</bean> 


//including only my step configution here
<batch:step id="Step4a-MainFlow_TranslateRawFedObjectsToFilingModel"
                allow-start-if-complete="false">                                
                <batch:tasklet>
                    <batch:chunk reader="rawFedObjectMongoReader"
                        processor="translatingProcessor" writer="SctModelMongoWriter"
                        commit-interval="100"/>
                </batch:tasklet>
                <batch:listeners>
                    <batch:listener ref="step4aListener"/>
                </batch:listeners>
</batch:step>   
下面是代码snipopet。

<bean id="retryAdvice"
class="org.springframework.retry.interceptor.RetryOperationsInterceptor">
    <property name="retryOperations" ref="taskBatchRetryTemplate" />
</bean>
<bean id="taskBatchRetryTemplate" class="org.springframework.retry.support.RetryTemplate">
    <property name="retryPolicy" ref="genericRetryPolicy" />
    <property name="backOffPolicy">             
        <bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
            <property name="initialInterval" value="${mongoloader.backOffPeriod.initialInterval}"/>
            <property name="maxInterval" value="${mongoloader.backOffPeriod.maxInterval}"/>
            <property name="multiplier" value="${mongoloader.backOffPeriod.multiplier}"/>
        </bean>
    </property>
    <property name="listeners">
        <bean class="com.company.ens.myload.job.StepRetryListener"/>
    </property>
</bean>

<bean id="genericRetryPolicy" class="org.springframework.retry.policy.SimpleRetryPolicy"  >
    <constructor-arg index="0" value="${mongoloader.retry.limit}"/>
    <constructor-arg index="1">
        <map>
            <entry key="org.springframework.data.mongodb.CannotGetMongoDbConnectionException" value="true"/>
            <entry key="org.springframework.jdbc.CannotGetJdbcConnectionException" value="true"/>               
            <!--  Just included the below exception for testing purpose, needs to be removed -->
            <entry key="java.io.FileNotFoundException" value="true"/>               
            <entry key="org.springframework.dao.DuplicateKeyException" value="true"/>               
        </map>
    </constructor-arg>
</bean> 


//including only my step configution here
<batch:step id="Step4a-MainFlow_TranslateRawFedObjectsToFilingModel"
                allow-start-if-complete="false">                                
                <batch:tasklet>
                    <batch:chunk reader="rawFedObjectMongoReader"
                        processor="translatingProcessor" writer="SctModelMongoWriter"
                        commit-interval="100"/>
                </batch:tasklet>
                <batch:listeners>
                    <batch:listener ref="step4aListener"/>
                </batch:listeners>
</batch:step>   

//这里只包括我的步骤配置

没有找到任何与我的问题相关的帖子。任何帮助都将不胜感激。

重试逻辑意味着什么?Mongo是一个非事务性的商店,所以我不希望在重试方面有太多的工作…谢谢你的回复。如果mongo服务器关闭,我想使用retryPolicy/backoutPolcy添加重试功能。有办法做到这一点吗?
<bean id="retryAdvice"
class="org.springframework.retry.interceptor.RetryOperationsInterceptor">
    <property name="retryOperations" ref="taskBatchRetryTemplate" />
</bean>
<bean id="taskBatchRetryTemplate" class="org.springframework.retry.support.RetryTemplate">
    <property name="retryPolicy" ref="genericRetryPolicy" />
    <property name="backOffPolicy">             
        <bean class="org.springframework.retry.backoff.ExponentialBackOffPolicy">
            <property name="initialInterval" value="${mongoloader.backOffPeriod.initialInterval}"/>
            <property name="maxInterval" value="${mongoloader.backOffPeriod.maxInterval}"/>
            <property name="multiplier" value="${mongoloader.backOffPeriod.multiplier}"/>
        </bean>
    </property>
    <property name="listeners">
        <bean class="com.company.ens.myload.job.StepRetryListener"/>
    </property>
</bean>

<bean id="genericRetryPolicy" class="org.springframework.retry.policy.SimpleRetryPolicy"  >
    <constructor-arg index="0" value="${mongoloader.retry.limit}"/>
    <constructor-arg index="1">
        <map>
            <entry key="org.springframework.data.mongodb.CannotGetMongoDbConnectionException" value="true"/>
            <entry key="org.springframework.jdbc.CannotGetJdbcConnectionException" value="true"/>               
            <!--  Just included the below exception for testing purpose, needs to be removed -->
            <entry key="java.io.FileNotFoundException" value="true"/>               
            <entry key="org.springframework.dao.DuplicateKeyException" value="true"/>               
        </map>
    </constructor-arg>
</bean> 


//including only my step configution here
<batch:step id="Step4a-MainFlow_TranslateRawFedObjectsToFilingModel"
                allow-start-if-complete="false">                                
                <batch:tasklet>
                    <batch:chunk reader="rawFedObjectMongoReader"
                        processor="translatingProcessor" writer="SctModelMongoWriter"
                        commit-interval="100"/>
                </batch:tasklet>
                <batch:listeners>
                    <batch:listener ref="step4aListener"/>
                </batch:listeners>
</batch:step>