NAME
App::Prove::Elasticsearch::Queue::Rabbit; - Coordinate the running of test plans across multiple instances via RabbitMQ.
VERSION
version 0.001
SUMMARY
Subclass of App::Prove::Elasticsearch::Queue::Default, which overrides queue_jobs and get_jobs to use RabbitMQ.
Also provides helper subs to make coordination of effort more efficient.
CONFIGURATION
Accepts a server, port, user and password option in the [Queue] section of elastest.conf
Also accepts an exchange option, which I would recommend you set to durable & passive.
If you get the message "connection reset by peer" you probably have user permissions set wrong. Do this:
sudo rabbitmqctl set_permissions -p / $USER ".*" ".*" ".*"
To resolve the problem.
CHANNELS
To avoid channel overlap when doing parallelized execution, you should set the write_channel and read_channel parameters on this object to something unique.
OVERRIDDEN METHODS
queue_jobs
Takes the jobs produced by get_work_for_plan() in the parent, and queues them in your configured rabbit server
Returns the number of jobs that failed to queue.
get_jobs
Gets the runner a selection of jobs that the queue thinks appropriate to our current configuration (if possible), and that should keep it busy for a reasonable amount of time.
The idea here is that clients will run get_jobs in a loop (likely using several workers) and run them until exhausted. The queue will be considered exhausted if this returns undef.
AUTHOR
George S. Baugh <teodesian@cpan.org>
SOURCE
The development version is on github at http://https://github.com/teodesian/App-Prove-Elasticsearch and may be cloned from git://https://github.com/teodesian/App-Prove-Elasticsearch.git
COPYRIGHT AND LICENSE
This software is copyright (c) 2018 by George S. Baugh.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.