The example here uses the MysqlEngine, though you are free to use any of the stable backends listed here
Before queuing a job, you should have a engine to store the jobs as well as an instance of the Queue
class:
<?php
use josegonzalez\Queuesadilla\Engine\MysqlEngine;
use josegonzalez\Queuesadilla\Queue;
$engine = new MysqlEngine($options);
$queue = new Queue($engine);
?>
Next, you will want to create a dummy job:
<?php
function some_job($job)
{
var_dump($job->data());
}
?>
At this point, you can use the $queue
instance to queue up jobs:
<?php
$queue->push('some_job', [
'id' => 7,
'message' => 'hi'
]);
?>
Once a job has been pushed, you can construct a worker and execute all jobs in the queue:
<?php
use josegonzalez\Queuesadilla\Engine\MysqlEngine;
use josegonzalez\Queuesadilla\Queue;
use josegonzalez\Queuesadilla\Worker\SequentialWorker;
use Monolog\Handler\ErrorLogHandler;
use Monolog\Logger;
$engine = new MysqlEngine($options);
$logger = new Logger('test', [new ErrorLogHandler]);
$worker = new SequentialWorker($engine, $logger, ['maxIterations' => 5, 'maxRuntime' => 300]);
$worker->work();
?>
For a more complete example, please see the example.