dinoqqq / crystal
Queue worker to easily manage recurring tasks
Installs: 7 761
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 2
Open Issues: 1
Requires
- php: >=7.2
- ext-pcntl: *
- ext-pdo: *
- catfan/medoo: ^1.7
- monolog/monolog: ^2.2
- psr/container: ^1.
Requires (Dev)
- phake/phake: 3.*
- phpunit/phpunit: 6.4.4
README
Crystal is a queue worker optimized for recurring tasks that need to be processed in an easy manageable way.
Features
- A clear overview of which tasks are recurring (in a DB table).
- Graceful shutdown of tasks (needed for tasks that have an unknown running time).
- Manageable system resources; by setting the total number of tasks/processes allowed to be processed simultaneously.
- Configurable dependencies between tasks (order of running).
- Easily dedicate more or less resources to tasks.
Requirements
- PHP7.2+
- MySQL / MariaDB
Get Started
Install via Composer
composer require dinoqqq/crystal
Usage
- Create a config.
- Create a TaskFactory, to define tasks.
- Create a Queuer, to schedule processes.
- Create cron entries to start the system and keep it running.
- Create a Controller, to catch the cron entries and start the heartbeat processes.
Development: running tests
To get the tests running follow these steps:
- Set the database settings in
/config/database.php
- Run the migrations in
/migration
- Run
composer update
- Run
/vendor/bin/phpunit
Read the extended README here.