2013-08-08 20 views
5

tôi đang làm việc trên một ứng dụng hiện có mà đã có đoạn mã nàyĐiều gì sẽ chọn ThreadPoolTaskExecutor hoặc SimpleAsyncTaskExecutor trong trường hợp của tôi?

<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor"> 
     <property name="corePoolSize" value="50" /> 
     <property name="maxPoolSize" value="200" /> 
     <property name="queueCapacity" value="250" /> 
    </bean> 

Chúng tôi có một phương pháp, đó là sử dụng các taskExecutor trên để hoàn thành một nhiệm vụ particuar. (Nhiệm vụ này phải được hoàn thành, nhưng có thể được hoàn thành asycnchronsly)

Nhiệm vụ cụ thể này thực sự chịu trách nhiệm chèn 100 tài liệu vào Cơ sở dữ liệu.

Vì vậy, tôi đã lên kế hoạch sử dụng SimpleAsyncTaskExecutor thay vì ThreadPoolTaskExecutor.

Xin vui lòng cho tôi biết nếu điều này sẽ ảnh hưởng đến hiệu suất hoặc tạo ra bất kỳ vấn đề

ứng dụng của chúng tôi là một đa luồng, và sẽ có aprox 700 người sử dụng bất cứ lúc nào.

Vì vậy, tôi không biết cách ứng xử trong môi trường sản xuất (có thể tốt trong phát triển)

Trả lời

0

Theo như tôi biết việc sử dụng SimpleAsyncTaskExecutor không có ý nghĩa trong trường hợp, nếu bạn muốn thực hiện một số lâu năm -các nhiệm vụ thực hiện, ví dụ nếu bạn muốn nén các tệp nhật ký vào cuối ngày. Trong các trường hợp khác, nếu bạn muốn thực thi tác vụ thực thi trong thời gian ngắn mỗi n giây hoặc phút, bạn nên sử dụng ThreadPoolTaskExecutor, vì sử dụng lại tài nguyên hệ thống.

Về mặt kỹ thuật cả hai biến thể sẽ hoạt động. Nhưng tôi sẽ sử dụng ThreadPoolTaskExecutor cho nhiệm vụ của bạn.

Các vấn đề liên quan