Commit | Line | Data |
15b628f3 |
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 | |