PHPackages                             recruiterphp/recruiter - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. recruiterphp/recruiter

ActiveLibrary[Database &amp; ORM](/categories/database)

recruiterphp/recruiter
======================

Job Queue Manager: high performance, high volume, persistent, fault tolerant. 100% PHP/MongoDB, 100% Awesome

v5.0.0(9mo ago)81.6k[2 PRs](https://github.com/recruiterphp/recruiter/pulls)MITPHPPHP ^8.4CI failing

Since Mar 14Pushed 3mo ago1 watchersCompare

[ Source](https://github.com/recruiterphp/recruiter)[ Packagist](https://packagist.org/packages/recruiterphp/recruiter)[ Docs](https://github.com/recruiterphp/recruiter)[ RSS](/packages/recruiterphp-recruiter/feed)WikiDiscussions main Synced 4d ago

READMEChangelog (1)Dependencies (18)Versions (28)Used By (0)

Recruiter
=========

[](#recruiter)

[![CI Pipeline](https://github.com/recruiterphp/recruiter/actions/workflows/ci.yml/badge.svg)](https://github.com/recruiterphp/recruiter/actions/workflows/ci.yml)[![Latest Stable Version](https://camo.githubusercontent.com/1089786c13e99ed70b3ec919207548bd2f40ff2386feaed211e98410a1ffef3f/68747470733a2f2f706f7365722e707567782e6f72672f7265637275697465727068702f7265637275697465722f762f737461626c65)](https://packagist.org/packages/recruiterphp/recruiter)[![License](https://camo.githubusercontent.com/5d84656dbfbea0a089a2eedd6e137d93c6a81dbfcb73e5e4ac165eed10c90ce9/68747470733a2f2f706f7365722e707567782e6f72672f7265637275697465727068702f7265637275697465722f6c6963656e7365)](https://packagist.org/packages/recruiterphp/recruiter)

A **battle-tested** job queue manager for PHP, with **billions of jobs processed** over the years in production environments.

✨ Features
----------

[](#-features)

- 🚀 **Production Ready** - Billions of jobs processed over the years with proven reliability
- 🔄 **Advanced Retry Policies** - Exponential backoff, custom strategies
- 🏷️ **Multi-Queue Support** - Job tagging and filtering
- 📊 **Full Job History** - Built-in analytics and monitoring
- 🛡️ **Fault Tolerant** - Graceful failure handling and recovery
- ⚡ **High Performance** - Optimized for scale with MongoDB
- 🐳 **Docker Ready** - Complete development environment included
- 🧪 **Fully Tested** - Comprehensive test suite with property-based testing

Requirements
------------

[](#requirements)

- PHP 8.4+
- MongoDB Extension &gt;=1.15
- MongoDB Server 4.0+

Installation
------------

[](#installation)

```
composer require recruiterphp/recruiter
```

Quick Start
-----------

[](#quick-start)

```
use Recruiter\Recruiter;
use Recruiter\Workable;
use Recruiter\WorkableBehaviour;
use MongoDB\Client;

// Create a job class
class EmailJob implements Workable
{
    use WorkableBehaviour;

    public function execute(): void
    {
        // Write your logic here
        mail(
            $this->parameters['email'],
            $this->parameters['subject'],
            $this->parameters['body']
        );
    }
}

// Connect to MongoDB
$factory = new Factory();
$db = $factory->getMongoDb(
    MongoURI::fromEnvironment(),
    $options = [],
);

// Set up Recruiter
$recruiter = new Recruiter($db);

// Schedule a job
new EmailJob([
    'email' => 'user@example.com',
    'subject' => 'Welcome!',
    'body' => 'Thanks for joining us!'
])
    ->asJobOf($recruiter)
    ->inBackground()
    ->execute();
```

🏢 Production Heritage
---------------------

[](#-production-heritage)

Recruiter was born at Onebip in **2012**, a major mobile payment platform processing millions of jobs daily. After being reengineered and **open sourced in 2014**, it was later adopted by EasyWelfare in **2018**, with billions of jobs processed across both platforms:

- ✅ Jobs cannot be lost (payments aren't idempotent)
- 📋 Jobs must be traceable (for customer support)
- ⏰ Failed jobs need smart retry logic (respecting rate limits)

After **billions of jobs processed** in production (2012-2024) and active development until 2020, Recruiter has proven its reliability across diverse production environments. Both original platforms have since been phased out due to corporate acquisitions, but in **July 2025** Recruiter received a major modernization, ensuring it continues as a proven, independent solution with over a decade of battle-tested experience.

🚀 Development
-------------

[](#-development)

```
# Clone and set up development environment
git clone https://github.com/recruiterphp/recruiter.git
cd recruiter

# Start development environment
make build && make up

# Run tests
make test

# Code quality checks
make fix-cs      # Fix code style
make phpstan     # Static analysis
make rector      # Code modernization
```

📚 Documentation
---------------

[](#-documentation)

- **[Complete Documentation](https://recruiter.readthedocs.io/)** - Comprehensive guides and API reference
- **[Website](https://recruiterphp.org)** - Project overview and quick start (Work in Progress)
- **[Examples](./examples/)** - Ready-to-run code examples

🤝 Related Projects
------------------

[](#-related-projects)

Part of the RecruiterPHP ecosystem:

- **[concurrency](https://github.com/recruiterphp/concurrency)** - MongoDB-based distributed locking
- **[geezer](https://github.com/recruiterphp/geezer)** - Tools for robust long-running processes
- **[clock](https://github.com/recruiterphp/clock)** - Testable time handling and MongoDB integration
- **[precious](https://github.com/recruiterphp/precious)** - Value object library
- **[zeiss](https://github.com/recruiterphp/zeiss)** - Event sourcing projections

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance70

Regular maintenance activity

Popularity21

Limited adoption so far

Community15

Small or concentrated contributor base

Maturity88

Battle-tested with a long release history

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~97 days

Recently: every ~496 days

Total

25

Last Release

280d ago

Major Versions

2.0.5 → 3.0.02019-04-11

3.0.9 → 4.0.02019-06-05

4.2.4 → v5.0.02025-08-08

PHP version history (2 changes)2.0.5PHP ~7.2

v5.0.0PHP ^8.4

### Community

Maintainers

![](https://www.gravatar.com/avatar/ed102e71a4ddc420660d84010ae0387b1c75340b77670e7e9a49d2964dd2ca80?d=identicon)[gabrielelana](/maintainers/gabrielelana)

![](https://www.gravatar.com/avatar/f3e93ddc6d8a23aa80fd9d3e1b62af4d04e035b698146659f4d606102fe4dee9?d=identicon)[silvadanilo](/maintainers/silvadanilo)

---

Top Contributors

[![gabrielelana](https://avatars.githubusercontent.com/u/50211?v=4)](https://github.com/gabrielelana "gabrielelana (284 commits)")[![dbellettini](https://avatars.githubusercontent.com/u/325358?v=4)](https://github.com/dbellettini "dbellettini (128 commits)")[![silvadanilo](https://avatars.githubusercontent.com/u/344657?v=4)](https://github.com/silvadanilo "silvadanilo (104 commits)")[![giorgiosironi](https://avatars.githubusercontent.com/u/160299?v=4)](https://github.com/giorgiosironi "giorgiosironi (96 commits)")[![aurelienlair](https://avatars.githubusercontent.com/u/2820749?v=4)](https://github.com/aurelienlair "aurelienlair (18 commits)")[![MirkoBonadei](https://avatars.githubusercontent.com/u/233235?v=4)](https://github.com/MirkoBonadei "MirkoBonadei (7 commits)")[![razielgn](https://avatars.githubusercontent.com/u/237493?v=4)](https://github.com/razielgn "razielgn (3 commits)")

---

Tags

queuejobmanagermongodbbackgroundjobsdeferredofflinedelay

###  Code Quality

TestsPHPUnit

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/recruiterphp-recruiter/health.svg)

```
[![Health](https://phpackages.com/badges/recruiterphp-recruiter/health.svg)](https://phpackages.com/packages/recruiterphp-recruiter)
```

###  Alternatives

[shopware/platform

The Shopware e-commerce core

3.3k1.5M3](/packages/shopware-platform)[friendsofsymfony/elastica-bundle

Elasticsearch PHP integration for your Symfony project using Elastica

1.3k17.2M47](/packages/friendsofsymfony-elastica-bundle)[contao/core-bundle

Contao Open Source CMS

1231.6M2.4k](/packages/contao-core-bundle)[guikingone/scheduler-bundle

A Symfony bundle that allows to schedule and create repetitive tasks

114217.4k](/packages/guikingone-scheduler-bundle)[shopware/core

Shopware platform is the core for all Shopware ecommerce products.

595.2M386](/packages/shopware-core)[anorgan/qutee

Simple queue manager and task processor for PHP

711.9k1](/packages/anorgan-qutee)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
