以编程方式创建Spring Framework任务?

new*_*bie 7 java spring scheduling

我需要在我的应用程序中即时创建任务.我怎样才能做到这一点?我可以使用@autowired注释获取调度程序,但调度程序获取Runnable对象.我需要提供Spring对象,以便我的任务也可以使用@autowired注释.

@Autowired private TaskScheduler taskScheduler;
Run Code Online (Sandbox Code Playgroud)

ska*_*man 16

您只需将目标对象包装在一个中Runnable,然后提交:

private Target target;  // this is a Spring bean of some kind
@Autowired private TaskScheduler taskScheduler;

public void scheduleSomething() {
    Runnable task = new Runnable() {
       public void run() {
          target.doTheWork();
       }
    };
    taskScheduler.scheduleWithFixedDelay(task, delay);
}
Run Code Online (Sandbox Code Playgroud)

  • @skaffman由于某种原因,taskScheduler没有注入.您是否知道在配置类上设置EnableScheduling时是否创建了TaskScheduler?谢谢! (2认同)