recruiterphp / recruiter
Job Queue Manager: high performance, high volume, persistent, fault tolerant. 100% PHP/MongoDB, 100% Awesome
Installs: 1 614
Dependents: 0
Suggesters: 0
Security: 0
Stars: 7
Watchers: 2
Forks: 0
Open Issues: 0
Type:project
Requires
- php: ~7.2
- ext-mongodb: >=1.1
- alcaeus/mongo-php-adapter: ^1.1
- gabrielelana/byte-units: ~0.1
- mongodb/mongodb: ^1.4
- monolog/monolog: >=1
- mtdowling/cron-expression: ^1.2
- psr/log: ^1.0
- recruiterphp/concurrency: ^3.0
- recruiterphp/geezer: ^5
- symfony/console: ^4.2
- symfony/event-dispatcher: ^3.4|^4.0
- ulrichsg/getopt-php: ~2.1
Requires (Dev)
- dms/phpunit-arraysubset-asserts: ^0.1.0
- giorgiosironi/eris: dev-master
- phpstan/phpstan: *
- phpunit/phpunit: ^8
Suggests
- symfony/console: In order to use Recruiter\Command\RecruiterJobCommand.
README
This is a work in progress not ready to be used or seen. This work is sponsored by Onebip, EasyWelfare
Recruiter
It's a Job Queue Manager built with PHP meant to be used in PHP projects. Features and characteristics:
- Jobs are made persistent on MongoDB
- Jobs are retriable with complex and customizable strategies
- Multiple queues are supported through tagging
- Jobs are stored by default in an history collection for after the fact inspection and analytics
- Built to be robust, scalable and fault tolerant
History
Onebip is a payment system (think PayPal with mobile devices in place of credit cards), things like: payment notifications, subscription renewals, remainder messages, … are really important. You cannot skip or lose a job (notification are idempotent but payments are not). You cannot forgot to have completed a job (customer/merchant support must have data to do their job). You need to know if and when you can retry a failed job (external services have rate limits and are based on agreements/contracts). We have developed internally our job/queue solution called Recruiter. After a year in production and many billions of jobs we have decided to put what we have learned into a stand alone project and to make it available to everyone.
Documentation
On ReadTheDocs you can find the reference documentation for the Recruiter project.