Initial MooseX::Workers based wrapper script
[catagits/Catalyst-Engine-STOMP.git] / testapp / script / testapp_stomp_workers.pl
1 package Manager;
2 use Moose;
3 with qw(MooseX::Workers);
4
5 BEGIN { 
6         $ENV{CATALYST_ENGINE} = 'Stomp';
7         require Catalyst::Engine::Stomp;
8 }  
9
10 use FindBin;
11 use lib "$FindBin::Bin/../lib";
12
13 sub run {
14         my $self = shift;
15         for my $i (1..4) {
16                 $self->spawn( sub { 
17                                       require TestApp;
18                                       TestApp->run();
19                               } );
20         }
21         POE::Kernel->run();
22 }
23
24 # Implement our Interface
25 sub worker_manager_start { warn 'started worker manager' }
26 sub worker_manager_stop  { warn 'stopped worker manager' }
27 sub max_workers_reached  { warn 'maximum worker count reached' }
28
29 sub worker_stdout  { shift; warn join ' ', @_; }
30 sub worker_stderr  { shift; warn join ' ', @_; }
31 sub worker_error   { shift; warn join ' ', @_; }
32 sub worker_done    {
33         my $self = shift;
34         warn "restarting";
35         $self->spawn( sub { 
36                               require TestApp;
37                               TestApp->run();
38                       } );
39 }
40 sub worker_started { shift; warn join ' ', @_; }
41 sub sig_child      { shift; warn join ' ', @_; }
42 no Moose;
43
44 my $manager = Manager->new();
45 $manager->run();
46