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.

Modules

function call "router" and load balancer

Provides

in lib/Gearman/Server/Job.pm
in lib/Gearman/Server/Listener.pm