… | |
… | |
515 | subprocesses for short- and long-running jobs, process pools (e.g. for |
515 | subprocesses for short- and long-running jobs, process pools (e.g. for |
516 | use in pre-forked servers) but also to spawn new external processes (such |
516 | use in pre-forked servers) but also to spawn new external processes (such |
517 | as CGI scripts from a webserver), which can be faster (and more well |
517 | as CGI scripts from a webserver), which can be faster (and more well |
518 | behaved) than using fork+exec in big processes. |
518 | behaved) than using fork+exec in big processes. |
519 | |
519 | |
|
|
520 | AnyEvent-Fork-Remote cpan cvs-pod(Remote.pm,) cvs-co(Changes) list(anyevent) irc(anyevent) |
|
|
521 | remote processes with AnyEvent::Fork interface |
|
|
522 | |
|
|
523 | Despite what the name of this module might suggest, it doesn't actually |
|
|
524 | create remote processes for you. But it does make it easy to use them, |
|
|
525 | once you have started them. |
|
|
526 | |
|
|
527 | This module implements a very similar API as AnyEvent::Fork. In fact, |
|
|
528 | similar enough to require at most minor modifications to support both |
|
|
529 | at the same time. For example, it works with AnyEvent::Fork::RPC and |
|
|
530 | AnyEvent::Fork::Pool. |
|
|
531 | |
520 | AnyEvent-Fork-RPC cpan cvs-pod(RPC.pm,) cvs-co(Changes) list(anyevent) irc(anyevent) |
532 | AnyEvent-Fork-RPC cpan cvs-pod(RPC.pm,) cvs-co(Changes) list(anyevent) irc(anyevent) |
521 | Simple RPC extension for AnyEvent::Fork |
533 | Simple RPC extension for AnyEvent::Fork |
522 | |
534 | |
523 | This module implements a simple RPC protocol and backend for processes |
535 | This module implements a simple RPC protocol and backend for processes |
524 | created via L<AnyEvent::Fork>, allowing you to call a function in the |
536 | created via AnyEvent::Fork, allowing you to call a function in the |
525 | child process and receive its return values (up to 4GB serialised). |
537 | child process and receive its return values (up to 4GB serialised). |
526 | |
538 | |
527 | It implements two different backends: a synchronous one that works like a |
539 | It implements two different backends: a synchronous one that works like a |
528 | normal function call, and an asynchronous one that can run multiple jobs |
540 | normal function call, and an asynchronous one that can run multiple jobs |
529 | concurrently in the child, using AnyEvent. |
541 | concurrently in the child, using AnyEvent. |