という実験をしてみた。
予想
(1) 取り込み中なので聞いてませんでしたてぃひっ、と思われて取りこぼされてしまう?
(2) あるいは、同じrobot.router.post()によるプロセスが2個同時並行で走るような状態になる?
(3) それとも、忙しい中のリクエストもしっかり受付されて、処理待ちキューみたいのができて、順次処理される?
結果
答えは(3)でした。
けっこう感動しました。
実況
2個目のリクエストを撃ったすぐ後に、それによる処理が始まった気配がなかったので、(2)でないことはすぐわかった。
(1)なのかな?
と思ったが、1個目の処理が終わったら、2個目の処理がたちどころに開始された。
それを見た瞬間、(3)とわかった。
いや~有能な秘書ですねHubot嬢。
IRC出力
ただし、IRCへの出力は、かなり遅れた。
1個目の処理が完了しても、1個目からのIRC出力はちょこっとしか出てこず。
2個目の処理が完了した頃に、1個目からのIRC出力の残りが出てきた。
2個目の処理が完了しても、2個目からのIRC出力は出てこなかった。
呑み込まれてしまったか…。
と思ったが、数秒後、2個目からのIRC出力もちゃんと出てきた。
やはり正道はイベントの活用
なのでやっぱり、長時間かかる処理の必要が発生したときは、要処理イベントを発生させて、リスナにつづきをやらせるのが正道そう。
0 件のコメント:
コメントを投稿