teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

typoの修正

2021/04/15 09:05

投稿

TakaiY
TakaiY

スコア14542

answer CHANGED
@@ -1,7 +1,7 @@
1
1
  質問の「バックグラウンド処理」にどのような動作を期待しているのかよくわからないので、そこから。
2
2
 
3
3
  1. 時間のかかる処理を実施するときに、その処理を別プロセスにまかせてさっさと次の処理ができるようにする。
4
- ※ 応答がすぐに返りますのでクライアントは待たされないが、処理が終っていないので結果はわからない。
4
+ ※ 応答がすぐに返のでクライアントは待たされないが、処理が終っていないので処理結果はわからない。
5
5
  2. Webサーバが複数のリクエストを同時に処理できるようにする。
6
6
  ※ 長い時間の処理をするときにはクライアントは待たされる。
7
7
 
@@ -21,5 +21,5 @@
21
21
 
22
22
  **2の場合**
23
23
  確認で複数ブラウザを使っているところを見ると、2のように複数の要求を同時に受けらるようにするのが目的のようにも見えます。だとすると、実現方法が異なります。
24
- bottleをマルチスレッド対応にするモジュールpasteを導入するか、gnicornなどのwsgiサーバを導入してそちらのworke経由で動かすかでしょうか。
24
+ bottleをマルチスレッド対応にするモジュールpasteを導入するか、gunicornなどのwsgiサーバを導入してそちらのworke経由で動かすかでしょうか。
25
25
  たとえば10こスレッドを作っておけば、10このリクエストを同時に処理できます。別のブラウザから/runに10個同時にアクセスするとすべてすぐにうけつけられて、すべて10秒後に応答が返るようになります。

1

文言修正

2021/04/15 09:05

投稿

TakaiY
TakaiY

スコア14542

answer CHANGED
@@ -1,23 +1,25 @@
1
- 質問の「バックグラウンド処理」が何意味しているのかあいまいなので、そこから。
1
+ 質問の「バックグラウンド処理」にどのような動作期待しているのかよくわからので、そこから。
2
2
 
3
- 1. 時間のかかる処理を実施するときに、その処理を別プロセスにまかせて処理する。
3
+ 1. 時間のかかる処理を実施するときに、その処理を別プロセスにまかせてさっさと次の処理ができるようにする。
4
- ※ 応答がすぐに返りますが、処理が終っていないので、クライアントは待たされないが、結果はわからない。
4
+ ※ 応答がすぐに返りますので、クライアントは待たされないが、処理が終っていないので、結果はわからない。
5
5
  2. Webサーバが複数のリクエストを同時に処理できるようにする。
6
6
  ※ 長い時間の処理をするときにはクライアントは待たされる。
7
7
 
8
8
  **1の場合**
9
- バックグラウンド処理というと、普通は1でしょうね。
10
- 提示された処理(リンク先のサイトもですが)は、1を実現するための処理のように見えますが、そうなっていません。
9
+ バックグラウンド処理というと、普通はこっちでしょうね。提示された処理(リンク先のサイト)いう動作を実現するための処理のように見えますが、そうなっていません。
11
10
 
12
11
  ```python
13
12
  app.process.start()
14
13
  app.process.join()
15
14
  ```
16
- 1行目で別プロセスの処理を起動していますが、2行目で終了を待ち合わせている、10秒してからjoin()のでクライアントは10秒またされてしまいます。 また、その間、他のHTTP要求には答えられません。
15
+ 1行目で別プロセスの処理を起動していますが、2行目で終了を待ち合わせています。 処理が終でjoin()らないのでクライアントは10秒またされてしまいます。
16
+ また、その間、他のHTTP要求に答えられません。
17
17
 
18
- のような場合にどうするのか、ちょっと調べてみたのですがわかりませんでした。FlaskならCeleryを使ったりします。
18
+ 1のような処理をbottleで実現するどうするのが一般的か、ちょっと調べてみたのですがわかりませんでした。
19
+ FlaskならCeleryを使ったりします。
19
20
 
20
21
 
21
22
  **2の場合**
22
- テストの手順を見ると、2のように複数の要求を受けらるようにするのが目的だとした場合法が異なります。
23
+ 確認で複数ブラウザ使っているところを見ると、2のように複数の要求を同時に受けらるようにするのが目的のようにも見えます。だとすると実現方法が異なります。
23
- bottleをマルチスレッド対応にするモジュールpasteを導入するか、gnicornなどのwsgiサーバを導入してそちらのworke経由で動かすかでしょうか。
24
+ bottleをマルチスレッド対応にするモジュールpasteを導入するか、gnicornなどのwsgiサーバを導入してそちらのworke経由で動かすかでしょうか。
25
+ たとえば10こスレッドを作っておけば、10このリクエストを同時に処理できます。別のブラウザから/runに10個同時にアクセスするとすべてすぐにうけつけられて、すべて10秒後に応答が返るようになります。