Murayama blog.

プログラミング教育なブログ

Servletの非同期処理

JAX-RSの非同期処理を実装しようと思ったけど、そもそもServletの非同期処理を実装したことなかったのでそっちの復習から。

参考記事

こちらの記事を参考にしてみました。

ちなみに参考にしたページではServletContextListenerでThreadPoolExecutor作ってる。要るのかわからんのでひとまずなしで。

動作確認

Tomcatを起動してブラウザでこんなかんじでアクセスする。

http://localhost:8080/async_servlet/AsyncLongRunningServlet?time=3000

この場合処理に3秒かかるわけですが、サーバのコンソールをみるとサーブレットスレッドがすぐ終了してるのがわかる。

AsyncLongRunningServlet Start::Name=25::ID=25
AsyncLongRunningServlet End::Namehttp-nio-8080-exec-3::ID=25::Time=13ms.

ちょっと疑問

サーバのコンソールを見ると、StartとEndの出力でスレッド名が変わってるんだけどこういうもんなのかな。