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+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
> <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/CAG2_C8CH8wFbCEpziX7g%3DOkkdim1RSzHLPSgSyk%3DUhsNCrSxQg%40mail.gmail.com.

Reply via email to