Crystal is a queue worker optimized for recurring tasks that need to be processed in an easy manageable way.
- 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.
- PHP7.2+
- MySQL / MariaDB
composer require dinoqqq/crystal
- 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.
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.