我想同时运行一些线程,它会定期执行给定的可运行任务。每个线程都有自己的Runnable
任务实例。java.util.concurrent.ScheduledThreadPoolExecutor的弹簧版本
我找到了java.util.concurrent.ScheduledThreadPoolExecutor
这似乎满足我的要求。
是否存在提供相同功能的任何Spring类?如果是的话,哪一个更好用。
感谢
Jitendra
我想同时运行一些线程,它会定期执行给定的可运行任务。每个线程都有自己的Runnable
任务实例。java.util.concurrent.ScheduledThreadPoolExecutor的弹簧版本
我找到了java.util.concurrent.ScheduledThreadPoolExecutor
这似乎满足我的要求。
是否存在提供相同功能的任何Spring类?如果是的话,哪一个更好用。
感谢
Jitendra
http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/scheduling/concurrent/ThreadPoolTaskScheduler.html是我想要的。这是一个围绕java.util.concurrent.ScheduledThreadPoolExecutor
的包装。
你可能想看看Spring的org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor
。参考文档有一个good example。
Spring Batch允许根据cron字符串调用方法。
Spring Quartz schedular提供了您正在查找的java.util.concurrent.ScheduledThreadPoolExecutor
功能。参考
22.2.2。使用MethodInvokingJobDetailFactoryBean和 22.2.3。使用触发器和SchedulerFactoryBean连接作业以获取详细信息@
Chapter 22. Scheduling jobs using Quartz or Timer。 我们在其中一个项目中使用cron表达式以固定间隔安排作业。如果上一个作业仍在运行,您还可以限制同时启动作业。
ThreadPoolTaskExecutor似乎只执行一次任务。我想安排它定期执行。我刚刚发现org.springframework.scheduling.concurrent.ThreadPoolTaskScheduler 似乎有这些功能。 任何人都可以请给我一些比较两者之间。 – RandomQuestion
执行此操作的一种方法是使用@ Scheduled注释一个方法,并在您的任务执行器上以编程方式调用execute。 'ThreadPoolTaskScheduler'可以让你定义一个cron表达式来定期运行一个线程轮询执行器。 ThreadPoolTaskExecutor只是使用线程池执行任务。 –