Scope::Container::DBI version 0.04 でデータベースへの接続が失敗したときに、自動で接続をやり直す機能を付けてみた。
http://search.cpan.org/dist/Scope-Container-DBI/
retry機能を使うには、connectの際のattributesにオプションを追加します。
my $dbh = Scope::Container::DBI->connect(
'dbi:mysql:mydb;host=myhost', 'myuser', 'mypasswd',{
RaiseError => 1,
mysql_connect_timeout => 1,
ScopeContainerConnectRetry => 3
ScopeContainerConnectRetrySleep => 100
}
);
ScopeContainerConnectRetry がretryする回数、ScopeContainerConnectRetrySleep は再接続する際のインターバルで、単位はミリ秒です。デフォルトはsleepしません。