
さらなる問題
入出力は(ときどき)遅い
現在、この
Web
アプリケーションはデータベースとほぼ瞬時に通信しているので、ユーザは
Web
アプリケーションがデータベースとやり取りする際の遅延の時間にほとんど気付くことはな
いでしょう。しかし、データベースとのやり取りに時間(おそらく数秒)がかかるとしたらどうな
るでしょうか。
3
長い時間がかかったら?
データベースが別のマシン、別の建物、別の大陸にあるとします。すると何が起こるで
しょうか?
バックエンドデータベースとの通信には時間がかかることがあります。実際には、コードが外
部とやり取りするときにはいつでもそれなりの時間がかかり、通常その時間は制御できません。
制御できないにもかかわらず、長い時間がかかる操作もあります。
この問題を検証したいので、(標準ライブラリの
time
モジュールに含まれる
sleep
関数で)
Web
アプリケーションに人工的な遅延を加えましょう。
Web
アプリケーションの先頭(他の
import
文の近く)に次の行を追加します。
from time import sleep
上の
import
文を挿入したら、
log_request
関数の
with
文の前に次の
1
行を挿入します。
sleep(15)
Web
アプリケーションを再起動して検索を開始すると、はっきりわかる遅延がレスポンスに生
じます。遅延としては
15
秒はとても長く感じ、ほとんどのユーザは何かがクラッシュしていると
考えます。
実行!
Web
版の
search4letters
にようこそ!
このフォームを使って検索リクエストを送ってください。 ...