Thank you, MIkel, So, this ping test must be executed for each database access?
I know pings are almost nothing, but adding a new non blocking loop... isn't it an overhead all over the application? I wonder why this so common scenario can't be managed inside the wait loop. Maybe there is something I still do not understand in the non-blocking way of life. Regards, Nacho B. El jueves, 8 de octubre de 2020 a las 16:49:02 UTC+2, mikel...@gmail.com escribió: > I do something like this in the MojoMySQL.pm plugin > ------- > > $MOJOMYSQL = Mojo::mysql->new($URL); > > # See if the damned thing is up. > # since we're in ::startup, we don't have the config plugin > available > # ( we pass the config filename in as "app_config" ) > my $config = eval qx{cat $conf->{'app_config'}} > or $log->logdie("Couldn't read config file: " . > $conf->{'app_config'}); > > eval { > local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required > alarm $config->{'db_ping_timeout'}; > my $ok = $MOJOMYSQL->db->ping(); > alarm 0; > }; > > if ($@) { > $log->logdie($@) unless $@ eq "alarm\n"; # propagate > unexpected errors > # timed out > my $msg = qq{DB PING FAILED! (continued below)\n} > . qq{**** It seems that > $conf->{'db'} on $conf->{'host'} is down! ****\n} > . qq{**** app runtime env is: > $config->{'environment'} ****\n} > . qq{**** Verify correct > setting in $conf->{'app_config'} ****\n}; > > $log->logdie($msg); > } > else { > # didn't > $log->debug("DB PING: $conf->{'db'} is up"); > return $MOJOMYSQL; > }; > > } # sub mojomysql > > On Thu, Oct 8, 2020 at 2:44 AM Nacho B <jib...@gmail.com> wrote: > >> Hi, I am using Mojo::Pg promises with db queries, and everything is >> great. >> >> But I do not how to manage the case in which database server is down and >> no response is arriving. >> >> I presume that I should insert a timeout somewhere, in the promise, but I >> do not know how. >> >> >> Nacho B. >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Mojolicious" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to mojolicious...@googlegroups.com. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/mojolicious/0b90c0f5-3cb7-4647-8f5e-c1413b713725n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/mojolicious/0b90c0f5-3cb7-4647-8f5e-c1413b713725n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to mojolicious+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/mojolicious/162ac6be-f54f-466d-a1b8-276c2344e4fdn%40googlegroups.com.