It does not solve my original problem, but I going to use your tip right now, because that "potential issue"... is more "usual" than "potential".
Thank you for your help, Mike: Nacho B. El domingo, 11 de octubre de 2020 a las 16:15:44 UTC+2, mikel...@gmail.com escribió: > One more thing. As I said, I only ping the DB when I startup to make sure > the config is right. It fixes the potential issue of a config error > pointing the app at a non-existent dev database in production. > > In the code, I do this: > $data = $db->query($query, $retval_ref->{'most_recent_rcd'})->array or > $log->logdie; > > On Sun, Oct 11, 2020 at 5:03 AM Nacho B <jib...@gmail.com> wrote: > >> 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...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/mojolicious/162ac6be-f54f-466d-a1b8-276c2344e4fdn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/mojolicious/162ac6be-f54f-466d-a1b8-276c2344e4fdn%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/35c349db-e459-4bc2-a66b-f672f1e28c8cn%40googlegroups.com.