Tôi có yêu cầu tạo một trình lên lịch nhiệm vụ với 10 chuỗi mà chúng ta cần kích hoạt cùng một lúc và mỗi chuỗi sẽ trở lại trạng thái hoàn thành hoặc không thành công. Dựa trên kết quả của chuỗi, chúng ta sẽ thực hiện cuộc gọi db và tìm nạp dữ liệu từ db. Ứng dụng đã được cấu hình với Spring Framework. Tôi hiểu rằng mùa xuân cung cấp lịch trình công việc, nhưng không chắc chắn làm thế nào để sử dụng nó, mùa xuân newbie cần giúp đỡ. Làm thế nào về ScheduledExecutorService của java, chúng ta có thể sử dụng nó? Lợi thế nào chúng ta sẽ vượt qua cái kia? Có một lựa chọn tốt hơn để lập lịch nhiệm vụ mùa xuân và ScheduledExecutorService của Java không?Lập lịch tác vụ mùa xuân so với ScheduledExecutorService của Java
Trả lời
Mùa xuân TaskExecutor
thực sự giống hệt với giao diện java Executor
. Sau mùa xuân 2.0 TaskExecutor
đã được giới thiệu để thêm trừu tượng vào Java Executor
, để nó sẽ ẩn chi tiết triển khai giữa các phiên bản khác nhau của Java SE và môi trường EE.
Như bạn đã có môi trường mùa xuân, tôi khuyên bạn nên sử dụng mùa xuân schedulers. Sau đó, nếu bạn cần bạn có thể cung cấp cho các thành phần Spring khác một sự trừu tượng cho việc tạo nhóm luồng, v.v.
Ngoài ra còn có một số triển khai TaskExecutor được tạo sẵn, vì bạn không phải quan tâm đến chi tiết và thực hiện của riêng bạn.
Cách đơn giản nhất là sử dụng thẻ tác vụ được cung cấp trong cấu hình mùa xuân. Thông báo các 'nhiệm vụ' namespace dưới
<?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
">
một khi bạn đã làm điều đó bạn có thể sử dụng
<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>
, vv nhiệm vụ theo lịch trình thực tế của bạn là một bean với một phương pháp trên đó mà được gọi là. Bạn có thể sắp xếp nó vào một sự chậm trễ cố định hoặc trên một cron, vv
bạn cũng có thể tuyên bố Chấp hành viên trong cấu hình như thế này:
<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>
Bạn có thể sử dụng một chấp hành viên để thực hiện một vũng nhiệm vụ đồng thời (tiêm rằng đậu vào đậu của bạn và nhìn vào những gì nó cung cấp).
- 1. Lập lịch tác vụ trong Spring/Java
- 2. Tại sao bộ lập lịch tác vụ mùa xuân chờ nhiệm vụ trước đó kết thúc?
- 3. Tác vụ lập lịch trình mùa xuân - chỉ chạy một lần
- 4. Bắt đầu từ mùa xuân <tác vụ: theo lịch-nhiệm vụ>
- 5. Lập lịch tác vụ Lua
- 6. Thiết lập tác vụ theo lịch .Net
- 7. Cách lên lịch lại một tác vụ bằng cách sử dụng ScheduledExecutorService?
- 8. Tác vụ theo lịch trình mùa xuân đang chạy trong môi trường nhóm
- 9. Trình lập lịch tác vụ - Windows 7
- 10. Thạch anh so với ScheduledExecutorService trong ứng dụng web Java
- 11. Cách chính xác để khởi động lại tác vụ theo lịch ScheduledExecutorService là gì?
- 12. Sự cố với Trình lập lịch tác vụ khởi chạy tác vụ
- 13. Jackson so với mùa xuân HATEOAS so với đa hình
- 14. Kích thước bộ lập lịch biểu mặc định trong khởi động mùa xuân là gì?
- 15. mùa xuân lên lịch tắt máy lỗi
- 16. mùa xuân 4 với thạch anh lên lịch
- 17. Đầu vào tác vụ so với các nguồn tác vụ
- 18. Tương đương với mùa xuân của CompletionService?
- 19. C# bắt đầu một tác vụ được lập lịch
- 20. Trình lập lịch biểu tác vụ Windows để thực hiện các tác vụ trong vài giây
- 21. Tác vụ được lập lịch Sitecore chỉ chạy mỗi giờ
- 22. Cách lên lịch một tác vụ định kỳ trong Java?
- 23. Mức độ đáng tin cậy của trình lập lịch biểu tác vụ windows để lập lịch để chạy nhiều lần?
- 24. chạy các tác vụ theo thời gian được lập lịch trình java, apache
- 25. Ngày so với TimeStamp so với lịch?
- 26. Tác vụ theo lịch trình với nhiều máy chủ - một điểm trách nhiệm
- 27. Dữ liệu mùa xuân Elasticsearch id so với _id
- 28. Setter DI so với Constructor DI trong mùa xuân?
- 29. Tác vụ theo lịch trình với Sql Azure?
- 30. Bộ nhớ đệm mùa xuân so với bộ nhớ đệm