Changes for version 1.10 - 2009-10-04
- Make workers wake up periodically for a particular server to make sure they aren't stale connections. This happened naturally (although at relatively low interval) in previous releases.
- Help prevent leaks when Gearman::Task->add_hook is used.
- Change worker to only 'wake up' against a gearmand that has woken it up, this prevents a constant flood of pre-sleep command from arriving at an otherwise silent gearmand.
- Fix issue where prefixes were double-prepended on function names on worker upon reconnect.
- Fix issue where the other response parser code in Util would silently truncate argument strings longer than 20*the socket buffer size.
- Fix issue where the ResponseParser class would not correctly handle messages with zero-length bodies.
- Make the Gearman::Task class autoload Storable and fail gracefully when it's not loadable.
- Initial fold-in of exceptions support in the gearman client, makes an option to the gearman server to enable it, and is disabled by default. Workers will will attempt to throw exceptions anytime Storable is available.
- fix jobs of > 32kilobytes in size so they work properly (workers would disconnect when a job greater than 32kb would arrive.)
- expose the time that the last job was processed in the stop_if hook of worker. Since a jobserver wakes up all workers in the case of a new job to be processed the concept of is_idle doesn't actually reflect if a worker has procssed jobs, rather it indicates whether the jobserver has been silent for 10 seconds.
- change server polling order in workers to start at a random point in the list during every worker pass. So we drain jobs from all servers rather than working on each of them in order.
- Gearman::Client in lib/Gearman/Objects.pm
- Gearman::Job in lib/Gearman/Worker.pm
- Gearman::JobStatus in lib/Gearman/JobStatus.pm
- Gearman::Objects in lib/Gearman/Objects.pm
- Gearman::ResponseParser in lib/Gearman/ResponseParser.pm
- Gearman::ResponseParser::Taskset in lib/Gearman/ResponseParser/Taskset.pm
- Gearman::Task in lib/Gearman/Objects.pm
- Gearman::Taskset in lib/Gearman/Objects.pm
- Gearman::Taskset in lib/Gearman/Taskset.pm
- Gearman::Util in lib/Gearman/Util.pm