2011-08-26 81 views
2

我想同时运行一些线程,它会定期执行给定的可运行任务。每个线程都有自己的Runnable任务实例。java.util.concurrent.ScheduledThreadPoolExecutor的弹簧版本

我找到了java.util.concurrent.ScheduledThreadPoolExecutor这似乎满足我的要求。

是否存在提供相同功能的任何Spring类?如果是的话,哪一个更好用。

感谢

Jitendra

回答

1

你可能想看看Spring的org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor。参考文档有一个good example

+0

ThreadPoolTask​​Executor似乎只执行一次任务。我想安排它定期执行。我刚刚发现org.springframework.scheduling.concurrent.ThreadPoolTask​​Scheduler 似乎有这些功能。 任何人都可以请给我一些比较两者之间。 – RandomQuestion

+0

执行此操作的一种方法是使用@ Scheduled注释一个方法,并在您的任务执行器上以编程方式调用execute。 'ThreadPoolTask​​Scheduler'可以让你定义一个cron表达式来定期运行一个线程轮询执行器。 ThreadPoolTask​​Executor只是使用线程池执行任务。 –

0

Spring Batch允许根据cron字符串调用方法。

0

Spring Quartz schedular提供了您正在查找的java.util.concurrent.ScheduledThreadPoolExecutor功能。参考

22.2.2。使用MethodInvokingJobDetailFactoryBean和 22.2.3。使用触发器和SchedulerFactoryBean连接作业以获取详细信息@

Chapter 22. Scheduling jobs using Quartz or Timer。 我们在其中一个项目中使用cron表达式以固定间隔安排作业。如果上一个作业仍在运行,您还可以限制同时启动作业。