PHP
laravel

キュードライバにbeanstalkdを使用する

More than 3 years have passed since last update.

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

https://github.com/ptrofimov/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でキューを使うための準備は整った!・・・はず。