【Python】並行処理再入門2
1から大分日が空いてしまったのですが、あれからエキスパートPythonプログラミング改訂2版で標準ライブラリで実装する並行処理のサンプルコードを動かして理解するなどしておりました。
でやはり自分でも一つ何か作ってみようと思い立ち、書いたコードの忘備録が今回の記事です。
より実践的なコード書きたいなぁと思いつつ、実践的なコードってなんだって情報収集して考えた結果、loggerの実装に行き着きました。
書いたコード
概要は書いてある通りです。テスト用データを作る機会があったので、そんな感じの仕様になりました。
具体的には、次の情報に基づいて以下のような処理をしています。
- 情報
- 全ユーザー数
- 全アイテム数
- ヘビーユーザーが持つアイテムの数
- 一般ユーザーが持つアイテム数
- 処理
終了するときはctrl + cです。
ログ周りに関しては、QueueHandlerとQueueListenerを使って次のようになっています。
- mainプロセス、子プロセス
- QueueHandlerを設定する。インスタンス生成時に渡したログ用のqueueに発生したログをputしていく
- listenerプロセス
- Listenerによって生成されたプロセス。queueからログを取得しファイルに書き出していく
ログの実装に関しては、公式のクックブックを参考にしました。