Spring Scheduled annotation如何工作

时间:2016-02-03 09:33:06

标签: java spring spring-mvc quartz-scheduler spring-scheduled

我在java中创建了一个函数。该函数应该在每天中午运行

//My function this function is within UpdateService Class
@Scheduled(cron = "0 0 0 * * ?")
public static void UpdateFn() {
    try {
        System.out.println("-----------Background Task Running----------------");
        //code to update some data every day
        System.out.println("-----------Background Task Ending----------------");
    } catch (Exception e) {
        e.printStackTrace();
    }
}

//My xml configuration
 <task:annotation-driven />
    <bean id="UpdateTask" class="com.ss.utility.UpdateService"></bean>
  </beans>

但是我没有像预期的那样工作。有时它会执行而有时不会。解决这个问题。

Spring版本是4

1 个答案:

答案 0 :(得分:1)

你没有使用静态方法。尝试使用以下代码:

@Scheduled(cron = "0 0 0 * * ?")
public void UpdateFn() {
    try {
        System.out.println("-----------Background Task Running----------------");
        //code to update some data every day
        System.out.println("-----------Background Task Ending----------------");
    } catch (Exception e) {
        e.printStackTrace();
    }
}