質問編集履歴

1

ないよ

2022/12/22 01:21

投稿

taka
taka

スコア76

test CHANGED
File without changes
test CHANGED
@@ -1,5 +1,32 @@
1
+ 以下の様な2つのプロセスで動作するコードがあります。
2
+ プロセス1はuvicornを動作、もう一つはメインのスレッドでcntをprintする処理
1
- pythonでuvicornを動かいます。
3
+ この時、標準出力はuvicornのログとcntのprintが入り混じっています。
4
+ uvicornのログが標準出力にでなくなる方法を教えてください。
2
5
 
3
- 起動するとログが標準出力にでると思うのですが、これをなくる方法を教えてください。
6
+ (uvicornをスレッド化するのはNGあくまuvicornは別プロセスとしま)
7
+ ```python
4
- uvicornはmultiprocessing.Processによって起動しているのでスレッドを使う方法はNGで。
8
+ from multiprocessing import Process
9
+ import time
10
+ from fastapi import FastAPI
11
+ import uvicorn
12
+
13
+
14
+ def f(name):
15
+ app=FastAPI()
16
+ uvicorn.run(app)
17
+
18
+ def f_2(name):
19
+ cnt=1
20
+ while cnt<=10:
21
+ print(f'process{name}:{cnt}')
22
+ cnt+=1
23
+ time.sleep(0.5)
24
+
25
+
26
+ if __name__ == '__main__':
5
- Processで標準出力を出さなくする方法、またはuvicron側で標準出力をでなくなる方法を探しています。
27
+ process_1 = Process(target=f, args=(1,))
28
+ process_1.start()
29
+ f_2(2)
30
+
31
+ ````
32
+