diff options
author | Yorhel <git@yorhel.nl> | 2011-04-08 19:25:53 +0200 |
---|---|---|
committer | Yorhel <git@yorhel.nl> | 2011-04-08 19:25:53 +0200 |
commit | 9304d1032723d3c2b9f3dad4d239f12c8c7268fa (patch) | |
tree | 6f6b356adc2a0b74e7a2c0832773a9295e3ab0a8 /lib | |
parent | 50da6516a687442f09a05416ca1daff04d7bbf37 (diff) |
Update traits_chars cache daily using Multi::Maintenance
I'd really prefer incremental updates, but I'll first need to find a
proper algorithm...
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Multi/Maintenance.pm | 14 | ||||
-rw-r--r-- | lib/VNDB/Handler/Chars.pm | 4 | ||||
-rw-r--r-- | lib/VNDB/Handler/Traits.pm | 6 |
3 files changed, 11 insertions, 13 deletions
diff --git a/lib/Multi/Maintenance.pm b/lib/Multi/Maintenance.pm index 44cb6552..fb0c336f 100644 --- a/lib/Multi/Maintenance.pm +++ b/lib/Multi/Maintenance.pm @@ -18,13 +18,13 @@ sub spawn { package_states => [ $p => [qw| _start shutdown set_daily daily set_monthly monthly log_stats - vncache_inc tagcache vnpopularity vnrating cleangraphs cleansessions cleannotifications + vncache_inc tagcache traitcache vnpopularity vnrating cleangraphs cleansessions cleannotifications vncache_full usercache statscache logrotate vnsearch_check vnsearch_gettitles vnsearch_update |], ], heap => { - daily => [qw|vncache_inc tagcache vnpopularity vnrating cleangraphs cleansessions cleannotifications|], + daily => [qw|vncache_inc tagcache traitcache vnpopularity vnrating cleangraphs cleansessions cleannotifications|], monthly => [qw|vncache_full usercache statscache logrotate|], vnsearch_checkdelay => 3600, @_, @@ -121,13 +121,19 @@ sub vncache_inc { sub tagcache { - # takes about 2 seconds max, still OK + # takes about 5 seconds max, still OK $_[KERNEL]->post(pg => do => 'SELECT tag_vn_calc()', undef, 'log_stats', 'tagcache'); } +sub traitcache { + # still takes less than a second + $_[KERNEL]->post(pg => do => 'SELECT traits_chars_calc()', undef, 'log_stats', 'traitcache'); +} + + sub vnpopularity { - # still takes at most 3 seconds. let's hope that doesn't increase... + # takes a bit more than 8 seconds, meh... $_[KERNEL]->post(pg => do => 'SELECT update_vnpopularity()', undef, 'log_stats', 'vnpopularity'); } diff --git a/lib/VNDB/Handler/Chars.pm b/lib/VNDB/Handler/Chars.pm index 7968b66c..dfa289be 100644 --- a/lib/VNDB/Handler/Chars.pm +++ b/lib/VNDB/Handler/Chars.pm @@ -331,10 +331,6 @@ sub edit { $frm->{vns} = \@vns; my $nrev = $self->dbItemEdit(c => !$copy && $id ? $r->{cid} : undef, %$frm); - - # TEMPORARY SOLUTION! I'll investigate more efficient solutions and incremental updates whenever I have more data - $self->dbExec('SELECT traits_chars_calc()'); - return $self->resRedirect("/c$nrev->{iid}.$nrev->{rev}", 'post'); } } diff --git a/lib/VNDB/Handler/Traits.pm b/lib/VNDB/Handler/Traits.pm index 1f3c2872..ea599ed1 100644 --- a/lib/VNDB/Handler/Traits.pm +++ b/lib/VNDB/Handler/Traits.pm @@ -104,8 +104,7 @@ sub traitpage { if(!@$chars) { p; br; br; txt mt '_traitp_nochars'; end; } - # not really cached at the moment - # p; br; txt mt '_traitp_cached'; end; + p; br; txt mt '_traitp_cached'; end; end 'div'; @$chars && $self->charBrowseTable($chars, $np, $f, "/i$trait?m=$f->{m}"); @@ -171,9 +170,6 @@ sub traitedit { } else { $self->dbTraitEdit($trait, %opts, upddate => $frm->{state} == 2 && $t->{state} != 2) if $trait; _set_childs_group($self, $trait, $group||$trait) if ($group||0) != ($t->{group}||0); - - # TEMPORARY SOLUTION! I'll investigate more efficient solutions and incremental updates whenever I have more data - $self->dbExec('SELECT traits_chars_calc()'); } $self->resRedirect("/i$trait", 'post'); return; |