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 の使用は、1 日の終わりにログ ファイルを圧縮する場合など、長時間実行するタスクを実行する場合に意味があります。それ以外の場合で、短時間実行タスクを n 秒または分ごとに実行する場合は、システム リソースを再利用するため、ThreadPoolTask​​Executor を使用する必要があります。

技術的には、両方のバリアントが機能します。ただし、タスクには ThreadPoolTask​​Executor を使用します。

于 2013-12-26T12:54:27.517 に答える