PECL PHP Extension

The PECL/Gearman extension uses libgearman library to provide API for communicating with gearmand, and writing clients and workers.


Is it possible to set the user on who’s behalf a worker will do work?
Yes, simply start workers using the desired user. This can be done either by using setuidgid from daemontools (‘‘setuidgid pavel ./worker.php’’), using jk_chrootlaunch from jailkit (jk_chrootlaunch -j /jail -u pavel -x /scripts/worker.php) or by using a wrapper written in php - posix extension, setuid() setgit() functions.
How does the job server handle accepted jobs when no function are registered yet?
The job server queues up the jobs just wait for workers to register (nice for race conditions when starting up). If gearman is compiled with a persistent queue module (Drizzle, MySQL, PostgreSQL, SQLite, memcached), the queue will survive restart of the job server.
Does Gearman provide some authentication mechanisms?
Not yet, currently you can only limit access by IPtable rules and by telling gearman to listen only on a specific IP by using the -L option (gearmand -vv -L SASL/TLS secure authentication is planned (see Gearman Blueprints).
Does Gearman understand prioritization, background/foreground jobs, parallel execution?
What happens if I set a timeout on a worker?
This allows workers to say “don’t let me run a job for function X for more than X seconds”. If a worker does take longer than the timeout, gearmand will restart the job somewhere else.
Can gearman be used as a cron/at replacement?
Not yet (see this thread)
Is there a way to gracefully stop a worker instead (such as for update of worker code) of killing it?
Yes and no. See this thread.
How do I know that the workers succeed/fail doing their work?
A plugin will be added (pluggable result cache).
Where can I get more information on planned Gearman development?
See the blueprints or search the Gearman mailing list.


Function reference

Please consult the extension reference at for the latest function reference.