[Bio] / FigKernelScripts / run_rabbit_daemon.pl Repository:
ViewVC logotype

Annotation of /FigKernelScripts/run_rabbit_daemon.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : olson 1.1 use strict;
2 :     use Log::Log4perl;
3 :     use ServerThing;
4 :    
5 :     =head1 NAME
6 :    
7 :     run_rabbit_daemon - Run one of the RabbitMQ-based daemons.
8 :    
9 :     =head1 SYNOPSIS
10 :    
11 :     run_rabbit_daemon [-h hostname] [-u username] [-p password] [-c config-file] class-name role
12 :    
13 :     Command line options:
14 :    
15 :     =head1 OPTIONS
16 :    
17 :     =over 4
18 :    
19 :     =item -h hostname
20 :    
21 :     Hostname or IP address of the rabbit broker.
22 :    
23 :     =item -u username
24 :    
25 :     Username for the rabbit broker.
26 :    
27 :     =item -p password
28 :    
29 :     Password for the rabbit broker.
30 :    
31 :     =item -c filename
32 :    
33 :     Logging configuration file.
34 :    
35 :     =item -f port
36 :    
37 :     Listening port for the FCGI gateway.
38 :    
39 :     =item class-name
40 :    
41 :     Sapling object class to be served; currently either ANNO or SAP.
42 :    
43 :     =item role
44 :    
45 :     Role for this daemon. Either "server" or "fcgi-gw".
46 :    
47 : olson 1.2 =item slow
48 :    
49 :     If set, this server handles rpc_slow.* messages for fast/slow
50 :     server distinction. Currently (Oct 2011) used for annotation
51 :     server calls where -assignToAll is selected.
52 :    
53 : olson 1.1 =back
54 :    
55 :     =cut
56 :    
57 :     my $rabbitmq_host = '192.5.200.30';
58 :     my $rabbitmq_user = 'guest';
59 :     my $rabbitmq_password = 'guest';
60 : olson 1.3 my $rabbitmq_vhost = '/';
61 : olson 1.1 my $log_conf;
62 :     my $fcgi_port = 8081;
63 : olson 1.2 my $is_slow_request_server = 0;
64 : olson 1.1
65 :     my %valid_class = map { $_ => 1 } qw(ANNO SAP);
66 :     my %valid_role = map { $_ => 1 } qw(server fcgi-gw);
67 :    
68 :     use Getopt::Long;
69 :    
70 :     my $rc = GetOptions("host=s" => \$rabbitmq_host,
71 :     "user=s" => \$rabbitmq_user,
72 : olson 1.2 "vhost=s" => \$rabbitmq_vhost,
73 : olson 1.1 "password=s" => \$rabbitmq_password,
74 :     "config=s" => \$log_conf,
75 :     "fcgi-port=i" => \$fcgi_port,
76 : olson 1.2 "slow" => \$is_slow_request_server,
77 : olson 1.1 );
78 :    
79 : olson 1.2 (@ARGV == 2 and $rc) or die "Usage: run_rabbit_daemon [args] class-name role\n";
80 : olson 1.1
81 :     my $conf = {
82 :     rabbitmq_host => $rabbitmq_host,
83 :     rabbitmq_user => $rabbitmq_user,
84 : olson 1.2 rabbitmq_vhost => $rabbitmq_vhost,
85 : olson 1.1 rabbitmq_password => $rabbitmq_password,
86 :     fcgi_port => $fcgi_port,
87 : olson 1.2 slow_queue_listener => $is_slow_request_server,
88 : olson 1.1 };
89 :    
90 :     if ($log_conf)
91 :     {
92 :     Log::Log4perl->init($log_conf);
93 :     }
94 :    
95 :     my $class = shift;
96 :     my $role = shift;
97 :    
98 :     if (!$valid_class{$class})
99 :     {
100 :     die "Invalid class $class";
101 :     }
102 :    
103 :     if (!$valid_role{$role})
104 :     {
105 :     die "Invalid role $role";
106 :     }
107 :    
108 : olson 1.3 my $slow_str = $is_slow_request_server ? ":slow" : "";
109 : olson 1.2 if (defined(my $i = $ENV{DAEMON_INDEX}))
110 :     {
111 : olson 1.3 $0 = "SERVER:$class:$role$slow_str ($i) $0";
112 : olson 1.2 }
113 :     else
114 :     {
115 : olson 1.3 $0 = "SERVER:$class:$role$slow_str $0";
116 : olson 1.2 }
117 : olson 1.1 if ($role eq 'server')
118 :     {
119 :     ServerThing::RunRabbitMQServer($class, $conf);
120 :     }
121 :     elsif ($role eq 'fcgi-gw')
122 :     {
123 :     ServerThing::RunRabbitMQClientAsync($class, $conf);
124 :     }
125 :     else
126 :     {
127 :     die "Unknown role $role";
128 :     }
129 :    
130 :     sub error_log_filename
131 :     {
132 :     print "Getting error filename\n";
133 :     return "/tmp/anno_server.log";
134 :     }
135 :    
136 :     sub debug_log_filename
137 :     {
138 :     print "Getting error filename\n";
139 :     return "/tmp/anno_server.debug.log";
140 :     }
141 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3