2019年4月19日金曜日

ジョブキューもどき

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

Footnotes:

1

mutexを使えば、sleepは必要ないだろうけど。