java – Upgrading to springframework.scheduling.concurrent?

java – Upgrading to springframework.scheduling.concurrent?

Use org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean in place of org.springframework.scheduling.timer.TimerFactoryBean and use org.springframework.scheduling.concurrent.ScheduledExecutorTask in place of org.springframework.scheduling.timer.ScheduledTimerTask. You will need to adjust the property names and values as needed but, that should be pretty self evident.

Optionally, you could refactor your com.example.OnlineTimerTask to not extend java.util.TimeTask as the ScheduledTimerTask only requires a runnable.

Spring 4 configuration – Below configuration working after spring migration from 3.2.x to 4.6.x

<bean id=schedulerTask
        class=org.springframework.scheduling.support.MethodInvokingRunnable>
        <property name=targetObject ref=springJmsListnerContainer />
        <property name=targetMethod value=execute />
    </bean>
    <bean id=timerTask class=org.springframework.scheduling.concurrent.ScheduledExecutorTask>
        <property name=runnable ref=schedulerTask />
        <property name=delay value=100 />
        <property name=period value=60000 />
    </bean>
    <bean class=org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean>
        <property name=scheduledExecutorTasks>
            <list>
                <ref bean=timerTask />
            </list>
        </property>
    </bean>

java – Upgrading to springframework.scheduling.concurrent?

The answer is – add one runnable field

 <bean id=scheduledExecutorTask 
    class=org.springframework.scheduling.concurrent.ScheduledExecutorTask>
    <!-- wait 10 milli seconds before starting repeated execution -->
    <property name=delay>
        <value>10</value>
    </property>
    <!-- run every 1 second -->
    <property name=period>
        <value>1000</value>
    </property>
    <property name=runnable>
        <ref bean=checkInvokingTask/>
    </property>
</bean>

Leave a Reply

Your email address will not be published. Required fields are marked *