舌足らずすぎた。

Model::DBIC:
  connect_info:
    - dbi:mysql:table
    - root
    - on_connect_do:
        - SET NAMES utf8
      cursor_class: DBIx::Class::Cursor::Cached
  cache_file: __path_to(tmp/query_cache)__

さっきはこんなconfigで使った場合のコードです。

by typester / at 2007-12-20T15:13:00 / catalyst · dbic / Comment

DBIx::Class::Cursor::Cachedつかってみた

すばらしすぎる。もっと早く使えばよかったとおもった。

Catalyst::Model::DBIC::Schema で使う場合はこんな感じでOK。

sub new {
    my $self = shift->NEXT::new(@_);

    my $cache = Cache::FastMmap->new( share_file => $self->{cache_file} );

    $self->schema->default_resultset_attributes({
        cache_object => $cache,
    });

    $self;
}

そんで、あとはsearchのattrとして { cache_for => 300 } とかかいてやればそのクエリは300秒キャッシュされる。

実際にはsearch時ではなくてallとかnextのときにそのクエリをキャッシュしてる。

ちなみにdefault_resultset_attributescache_forを含めるとすべてのクエリがキャッシュされる。

by typester / at 2007-12-20T13:33:00 / catalyst · dbic / Comment

lighttpd+fastcgiで

fastcgiだけ再起動したい場合に、再起動中にアクセスあるとfastcgiプロセスが上がったあとも500になってしまうことがあるのだけど、みんなどうしてる?

by typester / at 2007-12-20T01:14:00 / lighttpd · perl / Comment