2017-07-03 5 views
0

私の質問を述べる前に、私の制約を入れてみましょう。私の仕事に関連してコードを投稿することはできません。許す。これは、誰かが似たような問題を抱えているかどうかを調べるための調査クエリです。Pythonマルチプロセッシング(pytableを使用)は最終出力のキューからいくつかの結果を逃します

私は、作業者が仕事をして結果を待ち行列に入れるように、Pythonマルチプロセッシングをセットアップしました。その後、特別な作者がキューから結果を累計します。これらの結果はシンプルなパンダシリーズです。アキュムレータは、結果をpandasデータフレームに置き、ディスク上のpytableに書き込みます。

問題は、データフレームにいくつかの結果が欠落していることがランダムに表示されることです。 268の期待された列のうち267点が得られます。これは過去3ヶ月間に80回のうち10回起こっています。治療法は、(すべてを再計算することを意味する)コードを単に再実行し、2回目に100%動作します。私は計算にエラーがないことを確信していたので、私はマルチプロセッシングやpytableデータの書き方に関連していると推測しています。

ご迷惑をおかけして申し訳ございません。コードを書くことができなくて申し訳ありません。

答えて

0

コードなしであなたを助けることは本当に難しいです。しかし、私はちょうどあなたがあなたのコードに "薄い"場所を探したいと思っている場合、あなたはそれのログを書く必要があります。

作業員の1回の反復で、最終データフレームの列として作成された268シリーズを作成する必要があることを理解しました。これらのSeriesが同じ形状であれば、queue-workerの問題と思われます。できるだけすべてのステップでそれを記録する必要があります。

関連する問題