私は python 3.7.2 asyncio ベースのアプリケーションを持っています。いくつかのスレッド情報を公開するエンドポイントがあります。
threads_info = {}
for thread in enumerate():
threads_info[thread.__str__()] = traceback.format_stack(sys._current_frames()[thread.ident])
メイン スレッド以外のスレッドが実行されていないことはわかっていますが、エンドポイントにクエリを実行すると、この奇妙な ThreadPoolExecutor が表示されます。たった 1 つのワーカーから始まり、増え続けます。
なぜ、どのように、この ThreadPoolExecutor とは何ですか? おそらく、コードのどこで作成されたのか、またはどのパッケージが作成したのかを確認する方法はありますか?
アプリの実行に使用する Dockerfile:
FROM python:3.7.2-alpine as base
FROM base as builder
RUN mkdir /install
WORKDIR /install
COPY requirements /requirements
RUN apk add \
"gcc>8.2.0" \
"g++>8.2.0" \
"libffi-dev>3.2.1" \
"musl-dev>1.1.20"
RUN pip install --install-option="--prefix=/install" -r /requirements
FROM base
RUN apk add --no-cache procps
COPY --from=builder /install /usr/local
COPY src /app
WORKDIR /app
RUN mkdir logs
ENTRYPOINT ["python", "-u", "app.py"]
EXPOSE 80/tcp
私の要件ファイル:
quart==0.8.1
aiohttp==3.5.4
cchardet==2.1.4
aiodns==1.2.0
requests==2.21.0
psutil==5.6.1