У меня есть требование создать планировщик задач с 10 потоками, которые необходимо запустить одновременно, и каждый поток будет возвращаться со статусом полного или неудачного. Основываясь на результате потока, мы сделаем вызов db и извлечет данные из db. Приложение уже настроено с помощью Spring Framework. Я понимаю, что весна предоставляет планировщик задач, но не уверен, как ее использовать, новичкам нужна помощь. Как насчет функции ScheduledExecutorService в Java, можем ли мы это использовать? Какое преимущество мы получим над другим? Есть ли лучшая альтернатива планировщику задач Spring и Java ScheduledExecutorService?Spring Task Scheduler vs. Java ScheduledExecutorService
ответ
Весна TaskExecutor
на самом деле идентична java Executor
Интерфейс. После Spring 2.0 добавлен TaskExecutor
, чтобы добавить абстракцию в Java Executor
, чтобы она скрывала детали реализации между различными версиями Java SE и средами EE.
Поскольку у вас уже есть весенняя среда, я настоятельно рекомендую использовать весну schedulers. Позже, если возникнет необходимость, вы можете дать другим компонентам пружины абстракцию для объединения потоков и т. Д.
Также есть некоторые готовые реализации TaskExecutor, которые идеально подходят, поскольку вам не нужно заботиться о деталей и реализации по своему усмотрению.
Самый простой способ - использовать предоставленные теги задач в конфигурации пружины. Обратите внимание на «задача» пространства имен ниже
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xmlns:ctx="http://www.springframework.org/schema/context"
xmlns:task="http://www.springframework.org/schema/task"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task-3.2.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.2.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-3.2.xsd
">
, как только вы сделали, что вы можете использовать
<task:scheduler id="taskScheduler" pool-size="4"/>
<task:scheduled-tasks scheduler="taskScheduler">
<task:scheduled ref="someBean" method="someMethod" fixed-rate="21600000" initial-delay="60000"/>
</task:scheduled-tasks>
и т.д. действительное запланированное задание является боб с методом на нем, который вызывается. Вы можете запланировать его на фиксированную задержке или хроны и т.д.
вы также можете объявить исполнитель в конфигурации, как это:
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<description>A task pool for general use</description>
<property name="corePoolSize" value="150" />
<property name="maxPoolSize" value="200" />
<property name="queueCapacity" value="10" />
<property name="keepAliveSeconds" value="0"/>
<property name="waitForTasksToCompleteOnShutdown" value="false"/>
</bean>
Вы можете использовать исполнитель для выполнения пула параллельных задач (инъекционной этот bean-компонент в ваш bean-компонент и посмотрите, что он предоставляет).
- 1. Spring task scheduler + jboss
- 2. Spring Task Scheduler
- 3. java scheduler spring vs quartz
- 4. Scrapyd vs Windows Task Scheduler
- 5. Spring Task Scheduler последовательные задачи
- 6. Spring Scheduler
- 7. Code Task Scheduler Предложения
- 8. Task scheduler Windows 10
- 9. Task scheduler Issue
- 10. Task Scheduler весной
- 11. Windows 7 Task Scheduler
- 12. laravel task scheduler
- 13. Консоль App/Task Scheduler
- 14. Task scheduler/powershell/timeout
- 15. Task Scheduler - Windows 7
- 16. Azure Task Scheduler
- 17. Laravel Task Scheduler Crontab
- 18. PowerShell/task scheduler/task exists check
- 19. Что лучше всего использовать между Java ScheduledExecutorService и Quartz Scheduler?
- 20. Quartz vs. ScheduledExecutorService в веб-приложении Java
- 21. Spring Task Scheduler - Нет квалификационная рожкового типа [org.springframework.scheduling.TaskScheduler] определяется
- 22. Async Task vs Task
- 23. windows 7 task scheduler logoff
- 24. VBScript Task scheduler не работает?
- 25. Task Scheduler не запускает макрос
- 26. Python PowerPoint SaveAs Task Scheduler
- 27. Task Scheduler with C# DateTimePicker
- 28. Laravel Task Scheduler appendOutputTo Ошибка
- 29. PhoneGap Background Task Scheduler (Android)
- 30. Task Scheduler - Show Powershell Prompt