を読んで、memcached でキャッシュ& 複数の MySQL をアプリのロジックで分散化というのは、もうすっかりスケーラブルなウェブアプリの作り方として常套手段になったと思いました。 2004 年 4 月の MySQL カンファレンスでの Brad Fitzpatrick の発表 Inside LiveJournal's Backend (PDF)から約 3 年半。Mixi やはてなのようなエッジな企業はだいぶ前からこの構成を採用してますが、対法人のビジネス...
TheSchwartz は mysql に job を溜める simple な job queue なのです。 worker.pl 実際に仕事をするひとです。Job を Queue から Pull します。 package MyWorker; use strict; use warnings; use base qw( TheSchwartz::Worker ); use Data::Dumper; sub work { my ($class, $job) = @_; # $class は単に class.blessed object じゃない。 print "Workin' hard or hardly workin'? Hyuk!! @{[ Dumper($job->arg) ]}\n"; $job->completed(); } package main; use strict; use warnings; us...
MySQLだと問題ないみたい。あと、job の引数に何を渡すかで変わってくるらしい…… ちなみに SQLite 用のスキーマは TheSchwartz 自身に同梱されていて t/schema-sqlite.sql に、PostgreSQL 用のはリポジトリの trunk にあります。doc/schema-postgres.sql 検証用のスクリプトは最後に載せますが、単に client が job を突っ込んで、worker が job を取り出して $job->completed() するだけのものです。 Gtop を使っ...