8

我正在开发一个现有的应用程序,它有这段代码

<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 来完成一个特定的任务。(这个任务应该完成,但可以异步完成)

这个特定任务实际上负责将 100 个文档插入到 Database 中。

所以我打算使用SimpleAsyncTaskExecutor而不是ThreadPoolTaskExecutor.

请让我知道这是否会影响性能或产生任何问题

我们的应用程序是一个多线程的应用程序,任何时候都会有大约 700 个用户。

所以我不知道它在生产环境下的表现如何(在开发过程中可能没问题)

4

1 回答 1

1

据我所知,如果您想执行一些长时间执行的任务,例如,如果您想在一天结束时压缩日志文件,那么 SimpleAsyncTaskExecutor 的使用确实有意义。在其他情况下,如果你想每隔 n 秒或每分钟执行一次短时间执行任务,你应该使用 ThreadPoolTask​​Executor,因为它会重用系统资源。

从技术上讲,这两种变体都可以使用。但我会为您的任务使用 ThreadPoolTask​​Executor。

于 2013-12-26T12:54:27.517 回答