Threadごとにconnectionが張れるようになったのだからマルチプロセスでキューイングしたやつをマルチスレッド化してみよう。mailboxというライブラリを使おうとしたのだけど、キューが空だったとき、readで待ってくれない。nilが返ってくる。
自分でsleepするの1?
ABCLのmailboxは待ってくれるのだが。
ほかのライブラリはないか、と探してみると、lparallelのqueueなら待ってくれることがわかった。ちょこちょこと組んでみたらあっさりできあがって驚いた。
これで立ち上げたworker-jobの数分だけ並列でキューが処理される——はず。
Footnotes:
1
mutexを使えば、sleepは必要ないだろうけど。