From cd886cc2a585da2c0affca6205038d3075a3ec65 Mon Sep 17 00:00:00 2001 From: Damyan Ivanov Date: Thu, 11 Nov 2021 11:15:38 +0000 Subject: [PATCH] postpone db update for when it is really needed would help lower the load when massive changes to the db are made the db will be updated when a new song needs to be queued, and until that need arises the db may be changed again the (not that big) delay for db update when new song is needed is not a problem, because it is about keeping the playlist full -- not an urgent need --- bin/mpd-feeder | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/bin/mpd-feeder b/bin/mpd-feeder index 401e696..3ba9432 100755 --- a/bin/mpd-feeder +++ b/bin/mpd-feeder @@ -266,6 +266,8 @@ SQL $self->db_set_option( generation => $db_generation ); $db->commit; + + $db_needs_update = 0; } catch { my $err = $@; @@ -280,6 +282,7 @@ SQL method db_find_suitable_songs($num) { $self->connect_db; + $self->update_db; my @result; my $sth = $db->prepare_cached(<connect_mpd; my $f = $mpd->send( \@commands ); - warn "here"; $f->on_fail( sub { die @_ } ); $f->on_done( sub { @@ -368,8 +370,6 @@ SQL $callback->(@_) if $callback; } ); - - warn "here"; } method prepare_to_wait_idle { @@ -378,10 +378,9 @@ SQL sub { warn $_ for @_; my $result = shift; - use JSON; warn to_json($result); if ( $result->{changed} eq 'database' ) { - $self->update_db(1); + $db_needs_update = 1; $self->prepare_to_wait_idle; } elsif ( $result->{changed} eq 'playlist' ) { @@ -439,7 +438,6 @@ if (@ARGV) { } } - $feeder->queue_songs( undef, sub { $feeder->run } ); $feeder->mpd->loop->run; -- 2.39.2