package Foo; use Moose; use MooseX::JobControl; use MooseX::Workers::Job::Command; use MooseX::LogDispatch; with Logger( interface => 'levels' ); has controller => ( isa => 'MooseX::JobControl', is => 'ro', default => sub { MooseX::JobControl->new( jobs => [ 'echo "FOO"', 'echo "BAR"', 'echo "BAZ"' ] ); }, handles => [qw(job_queue)], ); sub run { my ($self) = @_; $self->debug('starting test'); $self->controller->run; } __PACKAGE__->new->run;