0

私は、concurrent.futures モジュールを使用してジョブを並行して実行しています。それはかなりうまくいきます。

開始時刻と完了時刻は、ジョブが開始/終了するたびに mysql データベースで更新されます。また、各ジョブはデータベースから入力ファイルを取得し、出力ファイルをデータベースに保存します。エラーが発生しています

「エラー 2006: MySQL サーバーがなくなりました」

"Error 2013: Lost connection to MySQL server during query"スクリプトの実行中。

単一のジョブの実行中にこれらのエラーに直面することはありません。

サンプル スクリプト:

import concurrent.futures

executor = concurrent.futures.ThreadPoolExecutor(max_workers=pool_size)

futures = []

for i in self.parent_job.child_jobs:
    futures.append(executor.submit(invokeRunCommand, i))

def invokeRunCommand(self)
    self.saveStartTime()
    self.getInputFiles()
    runShellCommand()
    self.saveEndTime()
    self.saveOutputFiles()

単一のデータベース接続とカーソルを使用して、すべてのクエリを実行しています。一部のクエリは時間のかかるものです。このエラーが発生する理由がわかりません。誰かが明確にすることができますか?

-ありがとう

4

1 に答える 1