NAME
POEx::WorkerPool::Role::WorkerPool - A role that provides common semantics for WorkerPools
VERSION
version 0.092800
ATTRIBUTES
job_classes is: ro, isa: ArrayRef[ClassName], required: 1
In order for the serializer on the other side of the process boundary to rebless jobs on the other side, it needs to make sure that the classes are loaded.
This attribute is used to indicate which classes need to be loaded.
options is: ro, isa: HashRef
options is the same options that would be passed to Sessions. Setting trace to 1 will allow tracing for the Workers.
POEx::WorkerPool->new(options => { trace => 1 });
queue_type is: ro, isa: enum([qw|round_robin fill_up|]), default: round_robin
This attribute specifies the queue type for the WorkerPool and changes how workers are pulled from the pool
max_workers is: ro, isa: Int, default: 5
This determines how many workers the Pool will spin up
current_worker_index is: rw, isa: ScalarRef
This stores the current index into workers. Dereference to manipulate the Int value.
workers is: ro, isa: ArrayRef[Worker]
This attribute holds all of the workers in the pool
max_jobs_per_worker is: ro, isa: Int, default: 5
This attribute let's the workers know how many jobs their queue can hold
METHODS
incr_worker_index returns Int
This is a convenience method for incrementing the index and wrapping around when it exceeds max_workers
get_next_worker returns (DoesWorker)
This returns the next worker in the pool as determined by the queue_type attribute.
For round_robin, it will return the next immediate worker if isn't active. fill_up will continue to return the same worker until its job queue is full.
If it is unable to return a suitable worker (all of the workers are currently active or all of their job queues are full, etc), it will throw a POEx::WorkerPool::Error::NoAvailableWorkers exception.
queue_job(DoesJob $job) returns (SessionAlias)
This method grabs the next available worker, enqueues the job, starts the worker's queue processing and returns the worker's pubsub alias that can be used to subscribe to various events that the worker fires.
halt is Event
This method will halt any active workers in the worker pool and force them to release resouces and clean up.
AUTHOR
Nicholas Perez <nperez@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2009 by Infinity Interactive.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.