При работе с постоянными соединениями MySQL возникает одна проблема - они обрываются после определенного таймаута (обычно 28800 секунд). DBIx::Connector вроде бы выполняет работу по автоматическому переподключению к прерванному соединению, но он добавляет больше кода Perl к каждому SQL-оператору, что может раздражать. Например, вместо:
$dbh->do('DROP DATABASE stackoverflow');
Нужно сказать:
$conn->run(
fixup => sub {
my $dbh = shift;
$dbh->do('DROP DATABASE stackoverflow');
}
);
Предположим, что транзакции не нужны. Зачем использовать DBIx::Connector вместо того, чтобы передать $dbh->{mysql_auto_reconnect} = 1, что также хорошо работает?