2011-08-26 73 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表達式以固定間隔安排作業。如果上一個作業仍在運行,您還可以限制同時啓動作業。