Revision history for Perl module MediaCloud::JobManager (ex. Gearman::JobScheduler) 0.27 2017-08-14 * Make mjm_worker.pl include stuff from current path and its lib/. 0.26 2016-11-21 * Make number of RabbitMQ connect retries configurable. 0.25 2016-06-09 * Fix broker initialization problem. 0.24 2016-06-09 * Remove Gearman support. * Remove obsolete dependencies. * Upgrade Net::AMQP::RabbitMQ. 0.23 2016-06-02 * Make job result (response) queues optional because they fill up RabbitMQ's queue list for clients that don't care about job results. * Remake per-function priorities into per-job priorities (passed as an argument to run_remotely() or add_to_queue()) because they make more sense. * Sort job arguments in job log. 0.22 2016-05-30 * Add support for RabbitMQ's "lazy queues" (https://www.rabbitmq.com/lazy-queues.html, configurable per-function) to handle large queues without a huge memory pressure. 0.21 2016-05-27 * Retry connecting to RabbitMQ for a minute when starting a client. * Don't print default job priority when starting a worker. 0.20 2016-05-04 * Remove unique() from workers because RabbitMQ doesn't support merging jobs with identical arguments into one. * Don't use PIDs for RabbitMQ channel numbers. 0.19 2016-05-03 * Add basic RabbitMQ job broker support using Celery as message protocol. 0.18 2016-04-27 * Use CPAN's preferred versioning. 0.17.1 2016-04-27 * Copy mjm_worker.pl to bin/. 0.17 2016-04-26 * Rename from Gearman::JobScheduler to MediaCloud::JobManager. * Rename run_on_gearman() to run_remotely(). * Rename enqueue_on_gearman() to add_to_queue(). * Refactor the module to be job broker-agnostic in order to later add additional job broker support (e.g. RabbitMQ via Celery protocol). * Modernize Makefile.PL. * Update README. 0.16.1 2016-04-20 * Remove Log::Log4perl's error log appender because together with Media Cloud's usage of Log::Log4perl it ends up in a deep recursion. 0.16 2014-07-01 * Fix support for Perl 5.19+. * Remove support for "timeout()" subroutine because it wasn't working as expected. * Add basic, sanity checking unit tests. * Add compile test. * Fix list of module dependencies. 0.15 2014-02-18 * Add FILENO() subroutine to Gearman::JobScheduler::ErrorLogTrapper because otherwise IPC::Open3 fails (see http://stackoverflow.com/a/6012757/200603). 0.14 2014-02-05 * Remove fork()-based workers because they're more of a bug than a feature; clients should run separate processes instead. * Use JSON instead of Storable to encode / decode job arguments in order to improve compatibility with Gearman clients / workers in other languages. 0.13 2014-02-03 * Sanitize function name when writing to a single ("unified") log. 0.12 2014-02-03 * Added support for writing worker logs into a single file. * Print job arguments into a single line for clarity. 0.11 2013-11-19 * Got rid of the Sys::Path dependency because it doesn't work on Perl 5.18 without warnings (requires JSON::Util -> IO::Any -> uses "~~" and "given" which emit warnings). 0.10 2013-11-18 * Got rid of an outdated/experimental "given-when" syntax so Perl 5.18 doesn't complain. * Dropped leading 'v' off versions to satisfy CPAN::Changes::Spec. * Added GitHub repo to Build.PL / META.yml. 0.09 2013-10-28 * Make "unique_job_id()" public for the use of client applications because they might want to generate their own unique job IDs in order to test whether or not a job with given parameters is enqueued. 0.08 2013-10-21 * Gearman::JobScheduler::Admin utility package for administering the server (just like "gearadmin" does). * Removed Gearman::JobScheduler::cancel_gearman_job() subroutine as redundant. * Don't die() when a log path is not found. * Added Gearman/JobScheduler/Worker.pm to the list of "provided" files. 0.07 2013-10-07 * Moose 2.1005 requirement. 0.06 2013-10-07 * Handle (log) undefined arguments to run() correctly. 0.05 2013-10-07 * Use SHA256 hashes for Perl-generated unique job identifiers because the job identifier is limited to 64 bytes by Gearman which is usually not enough. 0.04 2013-09-30 * Ability to start multiple worker instances of a single Gearman function. 0.03 2013-09-30 * Gearman functions can now provide their own default configurations. 0.02 2013-09-30 * Moved worker helper subroutines to a separate package so that they can be reused more easily. 0.01 2013-09-16 * Initial release.