質問: お世話になっております。 例えばウェブアプリにアクセスして、ボタンを押すと10秒間スリープするだけのアプリがherokuに上がっていたとします。 そのウェブアプリを30人がほぼ同時に、つまり、10秒スリープが行われている状態でまたそのタスクが発生した場合どうなりますか? そもそもすべて新しいスレッドを立てる処理に置き換えなければDjangoは処理が走った時点でアクセスできなくなってしまうのでしょうか? webサーバーは初心者なものでして、スレッドなど、そのへんがよくわかっておりません。 ご回答お待ちしています。 よろしくお願いいたします。
回答: あまり詳しくないレベルの拙い知識ですが、わかる範囲で・・・ DjangoはWSGIアプリケーションとして振る舞いますので、 WSGIアプリケーションコンテナ(通常HTTPサーバー下で動作するWSGIサーバー)の設定によると思います。 設定でプロセスが30立ち上がるようになっていれば、(ネットのトラフィックを無視すれば)30人ほぼ遅延なく動作することになりますし、Queueが設定されていれば、リクエストがQueueの容量分待ち受けられる事になり、Queueに入ったリクエストは、待ち数*10秒待つ事になるようなイメージだと思います。 WSGIサーバーは、いろいろありますが、どれか一つドキュメントを読まれてみてはどうでしょうか? 私も道半ばで、まだまだわからないことが多く恐縮ですが、 何かの取っ掛かりになれば。 (できれば、私も詳しい人の回答を参考にしたいです笑)