[Bio] / FigKernelPackages / ClusterWorker.pm Repository:
ViewVC logotype

Annotation of /FigKernelPackages/ClusterWorker.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (view) (download) (as text)

1 : olson 1.1 package Cluster::Worker;
2 :    
3 :     use strict;
4 :     use SOAP::Lite;
5 :     use Cluster;
6 :     use Data::Dumper;
7 :     use Time::HiRes 'time';
8 :    
9 :     my $ns = $Cluster::Broker::ns;
10 :    
11 :     =head1 Cluster::Worker
12 :    
13 :     Worker-side interface to the cluster work broker.
14 :    
15 :     =cut
16 :    
17 :     BEGIN {
18 :     #
19 :     # Dynamically create the methods here.
20 :     #
21 :    
22 :     my $start = time;
23 :     my %methods = (register_worker => 6,
24 :     register_cluster => 2,
25 :     get_work => 1,
26 :     work_done => 4,
27 :     work_failed => 4,
28 :     get_upload_handles => 4,
29 :     worker_alive => 1,
30 :     );
31 :    
32 :     no strict 'refs';
33 :     while (my($method_name, $arg_count) = each(%methods))
34 :     {
35 :     *$method_name = sub {
36 :     my($self, @args) = @_;
37 :     @args == $arg_count or die "Incorrect number of arguments to $method_name";
38 :    
39 :     my $response = $self->{proxy}->call($method_name, @args);
40 :    
41 :     if ($response->fault)
42 :     {
43 :     die $response->faultstring;
44 :     }
45 :     else
46 :     {
47 :     return $response->result;
48 :     }
49 :     }
50 :     }
51 :     my $end = time;
52 :     my $elap = ($end - $start) * 1000;
53 :     }
54 :    
55 :    
56 :     sub new
57 :     {
58 :     my($class, $url) = @_;
59 :    
60 :     my $proxy = SOAP::Lite->uri($ns)->proxy($url, timeout => 3600);
61 :    
62 :     my $self = {
63 :     proxy => $proxy,
64 :     };
65 :     return bless $self, $class;
66 :     }
67 :    
68 :     1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3