|
| 1 | +use Twiggy; |
| 2 | + |
1 | 3 | use Bio::KBase::AppService::AppServiceImpl;
|
2 | 4 | use Bio::KBase::AppService::Monitor;
|
3 | 5 | use Bio::KBase::AppService::Quick;
|
4 | 6 | use Bio::KBase::AppService::AsyncService;
|
5 | 7 |
|
6 | 8 | use Bio::KBase::AppService::AppSpecs;
|
7 |
| -use Bio::KBase::AppService::Scheduler; |
8 | 9 | use Bio::KBase::AppService::SlurmCluster;
|
9 | 10 |
|
10 |
| -#use Carp::Always; |
| 11 | +# use Carp::Always; |
11 | 12 |
|
12 | 13 | use Plack::Middleware::CrossOrigin;
|
13 | 14 | use Plack::Builder;
|
14 | 15 | use Data::Dumper;
|
| 16 | +use Log::Dispatch; |
| 17 | +use Log::Dispatch::File; |
15 | 18 |
|
16 | 19 | my @dispatch;
|
17 | 20 |
|
18 | 21 | my $obj = Bio::KBase::AppService::AppServiceImpl->new;
|
19 | 22 |
|
20 |
| -my $specs = Bio::KBase::AppService::AppSpecs->new($obj->{app_dir}); |
21 |
| -print Dumper($specs); |
22 |
| - |
23 |
| -my $sched = Bio::KBase::AppService::Scheduler->new(specs => $specs); |
24 |
| -$sched->{task_start_disable} = 0; |
25 |
| -$sched->load_apps(); |
26 |
| - |
27 |
| -my $cluster = Bio::KBase::AppService::SlurmCluster->new('TSlurm', |
28 |
| - schema => $sched->schema); |
29 |
| - |
30 |
| -my $shared_cluster = Bio::KBase::AppService::SlurmCluster->new('Bebop', |
31 |
| - schema => $sched->schema, |
32 |
| - resources => ["-p bdws", |
33 |
| - "-N 1", |
34 |
| - "--ntasks-per-node 1", |
35 |
| - "--time 1:00:00"]); |
36 |
| -my $bebop_cluster = Bio::KBase::AppService::SlurmCluster->new('Bebop', |
37 |
| - schema => $sched->schema, |
38 |
| - resources => [ |
39 |
| - "-p bdwd", |
40 |
| - "-x bdwd-0050", |
41 |
| - # "-p bdwall", |
42 |
| - "-N 1", |
43 |
| - "-A PATRIC", |
44 |
| - "--ntasks-per-node 1"], |
45 |
| - environment_config => ['module add jdk'], ['module add gnuplot']); |
| 23 | +my $logger; |
| 24 | +if (my $f = $ENV{APP_SERVICE_STDERR}) |
| 25 | +{ |
| 26 | + $logger = Log::Dispatch->new; |
| 27 | + $logger->add( Log::Dispatch::File->new(filename => $f, min_level => 'debug')); |
| 28 | +} |
46 | 29 |
|
47 | 30 |
|
| 31 | +my $specs = Bio::KBase::AppService::AppSpecs->new($obj->{app_dir}); |
| 32 | +print Dumper($specs); |
48 | 33 |
|
49 |
| -$sched->default_cluster($cluster); |
50 |
| - |
51 |
| -$obj->{util}->scheduler($sched); |
52 | 34 | Bio::KBase::AppService::Monitor::set_impl($obj);
|
53 | 35 | Bio::KBase::AppService::Quick::set_impl($obj);
|
54 | 36 |
|
55 | 37 | my $server = Bio::KBase::AppService::AsyncService->new(impl => $obj);
|
56 | 38 |
|
57 | 39 | my $rpc_handler = sub { $server->handle_rpc(@_); };
|
58 | 40 |
|
| 41 | +print Dumper($logger); |
| 42 | + |
59 | 43 | $handler = builder {
|
60 |
| - mount "/ping" => sub { $server->ping(@_); }; |
61 |
| - mount "/auth_ping" => sub { $server->auth_ping(@_); }; |
62 |
| - mount "/task_info" => sub { $obj->_task_info(@_); }; |
63 |
| - mount "/monitor" => Bio::KBase::AppService::Monitor->psgi_app; |
64 |
| - mount "/quick" => Bio::KBase::AppService::Quick->psgi_app; |
65 |
| - mount "/" => $rpc_handler; |
| 44 | + if ($logger) |
| 45 | + { |
| 46 | + enable 'LogDispatch', logger => $logger; |
| 47 | + enable 'LogStderr', no_tie => 1; |
| 48 | + } |
| 49 | + builder { |
| 50 | + mount "/ping" => sub { $server->ping(@_); }; |
| 51 | + mount "/auth_ping" => sub { $server->auth_ping(@_); }; |
| 52 | + mount "/task_info" => sub { $obj->_task_info(@_); }; |
| 53 | + mount "/monitor" => Bio::KBase::AppService::Monitor->psgi_app; |
| 54 | + mount "/quick" => Bio::KBase::AppService::Quick->psgi_app; |
| 55 | + mount "/" => $rpc_handler; |
| 56 | + }; |
66 | 57 | };
|
67 | 58 |
|
68 |
| -$sched->start_timers(); |
69 |
| - |
70 |
| -$handler = Plack::Middleware::CrossOrigin->wrap( $handler, origins => "*", headers => "*"); |
| 59 | +$handler = Plack::Middleware::CrossOrigin->wrap( $handler, origins => "*", headers => "*", max_age => 86400); |
0 commit comments