diff --git a/Netdisco/Changes b/Netdisco/Changes index e1e39f3a..a5c60637 100644 --- a/Netdisco/Changes +++ b/Netdisco/Changes @@ -1,4 +1,4 @@ -2.029013_001 - 2014-11-13 +2.029013_002 - 2014-11-14 [ENHANCEMENTS] diff --git a/Netdisco/lib/App/Netdisco/Daemon/Worker/Common.pm b/Netdisco/lib/App/Netdisco/Daemon/Worker/Common.pm index ff232cc7..4b217d2c 100644 --- a/Netdisco/lib/App/Netdisco/Daemon/Worker/Common.pm +++ b/Netdisco/lib/App/Netdisco/Daemon/Worker/Common.pm @@ -10,6 +10,8 @@ use namespace::clean; use App::Netdisco::JobQueue qw/jq_defer jq_complete/; +sub worker_begin { (shift)->{started} = time } + sub worker_body { my $self = shift; my $wid = $self->wid; @@ -42,7 +44,8 @@ sub worker_body { # restart worker once a day. # relies on the worker seeing a job at least every hour. my $hour = [localtime()]->[2]; - if ($wid and (($wid % 24) == $hour)) { + if ($wid and (time >= ($self->{started} + 86400)) + and ($hour == ($wid % 24))) { $self->exit(0, "recycling worker $wid"); } }