2017-10-16 50 views
0

我正在基于spring的服务器应用程序。基本上它会在非常短的时间间隔内对各种体育赛事的成绩进行轮询并保存在db中。对于轮询,定期会有很多(可以是约100个)不同的apis呼叫,例如某些api呼叫会有3秒钟的间隔,有些则有5秒钟等等,服务器将频繁地间隔保持最新数据的轮询。春 - 动态添加和删除计划任务

这些调用将被动态添加和删除。我没有使用弹簧的经验。我想我必须使用一些调度程序。任何人都可以在正确的方向指出哪种方法或哪种调度程序在这种情况下最好。

回答

2

在本质上要注入的调度任务执行的实例

@Configuration 
public class MyApplicationConfiguration { 
    @Bean 
    public ThreadPoolTaskScheduler threadPoolTaskScheduler() { 
     ThreadPoolTaskScheduler tpts = new ThreadPoolTaskScheduler(); 
     // maybe configure it a little? 
     return tpts; 
    } 

    @Bean 
    public MyService myService() { 
     return new MyService(); 
    } 
} 

class MyService { 
    @Autowired 
    private ThreadPoolTaskScheduler tpts; 

    public void doSomething() { 
     Runnable task = ... 
     tpts.scheduleWithFixedDelay(task, 1000); 
    } 
} 

你可以看到一个reasonable guide here,或SchedulingTaskExecutor JavadocSpring Task Execution and Scheduling Reference

+0

感谢您的回复。我会仔细看看的。你知道我们什么时候使用Quartz调度器吗? – anujprashar

+0

这里有一个类似的教程http://www.baeldung.com/spring-quartz-schedule – ptomli

1

您可以使用@Scheduled Spring注解。示例请参考此link

+0

感谢答复,但我认为这不是动态。我无法在运行时添加或删除任务。 – anujprashar