Threadの非同期


会社のプロジェクトの進行中に、社内に現れる形態素分析器で分析して記録する必要があることが現れ、これらの対象文章は14000個前後のよくある質問文である.
形態素アナライザはjavaで構築され、jppypeで実行するように設定されています.
形態解析関数では,性能を向上させるためにコードが非同期で記述されている可能性がある.
14000件の文章の形態分析を行った時間は2分30秒程度であった.
Djangoサービスを実行すると、多くのリソースが同時にロードされます.
2分30秒の短縮が必要です.
だからThread内で非同期処理の構造でコードを書いて、時間を40数秒に短縮することができます
実装中、非同期で作成した関数が正常に動作しているかどうかをテストしています.
プライマリピーター環境開発とpyファイル開発環境では,非同期関数の役割方式が異なる.
ちょっとめんどくさい
*を参照
非同期に関連する更新は、非同期部分を開く論理と閉じる論理で
.run関数ロジック、Python 3.7に追加
非同期とスレッドをもっと深く勉強すると、長い文章が見えます.
まずここまで整理します.
书いてみたら日记でした.
共有コード構造のみ
from concurrent.futures import ThreadPoolExecutor

def get_mazer_keywords(self, text):
        try:
            result = asyncio.run(mazer.get_xml(text))
            
with ThreadPoolExecutor(max_workers=threadCount) as executor:
    executor.map(self.get_mazer_keywords,sentences)