Changes for version 1.10 - 2009-10-04
- Read client input more aggressively. Speed improvement.
- Add text commands 'jobs' and 'clients' which give information allowing you to trace jobs from clients to workers while they are running.
- Flush buffers to client on EOF (assume half-closed). This makes things like netcat work better as a way to speak text protocol to the gearmand.
- Add command-line option to adjust a delay before more workers are woken up. This acts as an anti-starvation mechanism in case of lower wake up counts. -Default is .1 seconds, formerly this option was not needed because all workers were woken up at the time of job submission.
- Add command-line option to adjust number of workers to wake up per job injected. -Default is 3, formerly was -1 (wake up all as fast as possible)
- Add command-line option to change the number of sockets accepted at once per listener socket. -Default is now 10, formerly used to be 1.
- Add exceptions passing support to gearman server classes, using new options support.
- Add options support to server clients, so they can subscribe to newer protocol features.
- Change listening socket to be a real Danga::Socket subclass, this allows pausing for a period of time when we run into accept errors. This will fix the problem of gearmand spinning 100% cpu in those cases.
- Make gearmand a little more vocal about socket accept errors.
- add fast read concept to server reading from client codepath. This drastically improves performance of jobs over 1k in size.
- fix in-process client and start_worker method calls to use non-blocking sockets like they should.
Documentation
Gearman client/worker connector.
Provides
in lib/Gearman/Server/Job.pm
in lib/Gearman/Server/Listener.pm