我正在处理已有此代码的现有应用程序
<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>
我们有一个方法,它使用上面的taskExecutor来完成一个特殊任务。 (这个任务应该完成,但可以完成asycnchronsly)
此特定任务实际上负责将100个文档插入数据库。
所以我打算使用SimpleAsyncTaskExecutor
代替ThreadPoolTaskExecutor
。
如果这会影响效果或产生任何问题,请与我们联系
我们的应用程序是多线程的,任何时候都会有100个用户。
所以我不知道它在生产环境下的表现如何(在开发过程中可能会很好)
答案 0 :(得分:1)
据我所知,SimpleAsyncTaskExecutor的使用确实有意义,如果你想执行一些长时间执行的任务,例如如果要在一天结束时压缩日志文件。在其他情况下,如果要每n秒或几分钟执行一次执行短时间的任务,则应使用ThreadPoolTaskExecutor,因为重用了系统资源。
从技术上讲,两种变体都可以使用。但是我会使用ThreadPoolTaskExecutor来完成你的任务。