.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Gearman::Server 3pm" .TH Gearman::Server 3pm "2022-06-05" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Gearman::Server \- function call "router" and load balancer .SH "DESCRIPTION" .IX Header "DESCRIPTION" You run a Gearman server (or more likely, many of them for both high-availability and load balancing), then have workers (using Gearman::Worker from the Gearman module, or libraries for other languages) register their ability to do certain functions to all of them, and then clients (using Gearman::Client, Gearman::Client::Async, etc) request work to be done from one of the Gearman servers. .PP The servers connect them, routing function call requests to the appropriate workers, multiplexing responses to duplicate requests as requested, etc. .PP More than likely, you want to use the provided \*(L"gearmand\*(R" in bin wrapper script, and not use Gearman::Server directly. .SH "METHODS" .IX Header "METHODS" .SS "new" .IX Subsection "new" .Vb 1 \& $server_object = Gearman::Server\->new( %options ) .Ve .PP Creates and returns a new Gearman::Server object, which attaches itself to the Danga::Socket event loop. The server will begin operating when the Danga::Socket runloop is started. This means you need to start up the runloop before anything will happen. .PP Options: .IP "port" 4 .IX Item "port" Specify a port which you would like the Gearman::Server to listen on for \s-1TCP\s0 connections (not necessary, but useful) .SS "create_listening_sock" .IX Subsection "create_listening_sock" .Vb 1 \& $server_object\->create_listening_sock( $portnum, \e%options ) .Ve .PP Add a \s-1TCP\s0 port listener for incoming Gearman worker and client connections. Options: .IP "accept_per_loop" 4 .IX Item "accept_per_loop" .PD 0 .IP "local_addr" 4 .IX Item "local_addr" .PD Bind socket to only this address. .SS "start_worker" .IX Subsection "start_worker" .Vb 1 \& $pid = $server_object\->start_worker( $prog ) \& \& ($pid, $client) = $server_object\->start_worker( $prog ) .Ve .PP Fork and start a worker process named by \f(CW$prog\fR and returns the pid (or pid and client object). .SH "SEE ALSO" .IX Header "SEE ALSO" \&\*(L"gearmand\*(R" in bin