jobd: an alternative to Gearman, created primarily for PHP applications

I'm a core backend developer and sysadmin in one large project. In this project, backend is written in PHP, we have a couple dozens of servers and we need to launch many kinds of background and foreground tasks on them. To do that right, we need a task queue daemon. Something like Gearman.

Actually, for many years, we used to use Gearman.

We were not happy using it.

We had to have a giant wrapper around its API to make it suitable for our needs.

For instance, Gearman have no means of logging failed tasks to be investigated and relaunched in future.

We were also experiencing mysterious problems with its PHP module all the time. 100% CPU usage for nothing (was fixed later in upstream). MySQL connection losses, once in a week or so. PHP-to-gearmand connection losses. You name it.

Finally I gave up on it and decided to write my own task queue daemon. A few days later, first somewhat working version of jobd appeared.

Few days more, and we started testing it in production and quickly migrated all our tasks from Gearman to jobd. It's simple, stable, efficient and "just works".

jobd – jobd and its documentation

PHP client

Integration example

If you have any comments, contact me by email.