From 244033449db3955e85eb8bf6b42051f02559b09c Mon Sep 17 00:00:00 2001 From: Oliver Gorwits Date: Wed, 2 Jan 2013 16:28:24 +0000 Subject: [PATCH] code tidy and create tmpdir if not exists --- Netdisco/bin/netdisco-daemon | 25 ++++++++----------- Netdisco/lib/App/Netdisco/Daemon/Queue.pm | 1 - .../lib/App/Netdisco/Daemon/Worker/Manager.pm | 6 ++--- 3 files changed, 14 insertions(+), 18 deletions(-) diff --git a/Netdisco/bin/netdisco-daemon b/Netdisco/bin/netdisco-daemon index d399b08b..dfc8d2ae 100755 --- a/Netdisco/bin/netdisco-daemon +++ b/Netdisco/bin/netdisco-daemon @@ -17,27 +17,18 @@ use MCE; use Role::Tiny; use Path::Class 'dir'; +my $tmp = dir($ENV{HOME}, 'tmp'); +mkdir $tmp if ! -d $tmp; + my $mce = MCE->new( - tmp_dir => dir($ENV{HOME}, 'tmp'), + tmp_dir => $tmp, spawn_delay => 0.15, job_delay => 0.15, - user_func => \&call_worker_body, + user_func => sub { $_[0]->worker_body }, on_post_exit => \&restart_worker, user_tasks => build_tasks_list(), )->run(); - -sub call_worker_body { - my ($self) = @_; - $self->worker_body; -} - -sub restart_worker { - my ($self, $e) = @_; - reset_jobs($e->{wid}); - $self->restart_worker($e->{wid}); -} - sub build_tasks_list { my $tasks = [{ max_workers => 1, @@ -73,3 +64,9 @@ sub worker_factory { $self->worker_begin if $self->can('worker_begin'); }; } + +sub restart_worker { + my ($self, $e) = @_; + reset_jobs($e->{wid}); + $self->restart_worker($e->{wid}); +} diff --git a/Netdisco/lib/App/Netdisco/Daemon/Queue.pm b/Netdisco/lib/App/Netdisco/Daemon/Queue.pm index cf2f2685..e3fe4502 100644 --- a/Netdisco/lib/App/Netdisco/Daemon/Queue.pm +++ b/Netdisco/lib/App/Netdisco/Daemon/Queue.pm @@ -2,7 +2,6 @@ package App::Netdisco::Daemon::Queue; use Dancer qw/:moose :syntax :script/; use Dancer::Plugin::DBIC 'schema'; -use Try::Tiny; use base 'Exporter'; our @EXPORT = (); diff --git a/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm b/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm index 1939e7b5..76874055 100644 --- a/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm +++ b/Netdisco/lib/App/Netdisco/Daemon/Worker/Manager.pm @@ -53,7 +53,7 @@ sub worker_body { next unless $self->lock_job($job); my $local_job = $job->get_columns; - $local_job->{role} = $role_map->{$local_job->{action}}; + $local_job->{role} = $role_map->{$job->action}; # copy job to local queue $self->do('add_jobs', [$local_job]); @@ -79,8 +79,8 @@ sub capacity_for { my $role = $role_map->{$job->action}; my $setting = $setting_map->{$role}; - my $current = schema('netdisco')->resultset('Admin') - ->search({role => $role, status => "queued-$fqdn"})->count; + my $current = schema('daemon')->resultset('Admin') + ->search({role => $role})->count; return ($current < setting($setting)); }