Laravelではキュードライバに下記3つを使用できる
- Beanstalkd
- Amazon SQS
- IronMQ
それぞれ軽く調べてみた結果
- Amazon SQS・・・なんかお金かかるっぽい
- IronMQ・・・日本語のドキュメント無し(多分)
という都合によりBeanstalkdを使うことにした。
今回は、Beanstalkdを使う際、
- 処理を永続化する
- タスク状況を監視する
という実際キュードライバを使ってシステム運用するなら必要になるっぽい二つの設定とかを備忘録に。
Beanstalkdについて
とりあえずインストール
sudo yum install beanstalkd
処理の永続化
/etc/sysconfig/beanstalkd
の
#BEANSTALKD_BINLOG_DIR=/var/lib/beanstalkd/binlog
のコメントアウトを外す。
これだけでOk
この指定をすることでログにキューのタスク情報(曖昧)を書き込むようになる。
のでサーバ落ちたりしてもキューにジョブがたまっていた場合、続きから再開できる。
管理ツールの導入
じゃあそもそもキューがどうなっているかを管理できるインターフェースあったら便利だよねってことで調べたところ、いいものがありました。
- beanstalk_console
早速インストールしてみる
curl -s http://getcomposer.org/installer | php
composer.pharファイルができるので、実行
php composer.phar create-project ptrofimov/beanstalk_console -s dev path/to/install
これでツールがインストールされる。特に何も設定しなくても
http://localhost/作業ディレクトリ/path/public/index.php
にアクセスすると問題なく使えた。
キューがどんな感じかを知るなら下記記事が大変参考になる。
http://blog.ishinao.net/2013/07/05/28289/
サンプルを作ってジョブを登録→beanstalkdを停止させて再起動
みたいなことをすれば永続化のテストが割りと簡単にできる。
これでLaravelでキューを使うための準備は整った!・・・はず。