This is a helper package for extension developers that adds Laravel Queue ability to Flarum.
Inside your the composer.json
of your extension add under the require section bokt/flarum-queue
:
"require": {
// ..
"bokt/flarum-queue": "*"
}
Make sure you register the QueueProvider in your extend.php
:
return [
new \Bokt\Queue\Extend\EnableQueues,
// .. your code
];
In your source code you need to resolve the Illuminate\Queue\QueueManager
or
its alias queue
from the container. This allows you to push jobs into the queue.
app()->make('queue')->push(new YouHadOneJob);
Test whether your job is queued in the jobs table and by running with the flarum binary:
$ php flarum queue:work
By default the database driver is used. You can override this by providing a queue configuration
in your config.php
under the queue
key, eg:
'database' => [
// ..
],
'queue' => [
'driver' => 'redis',
'connection' => 'default',
'queue' => env('REDIS_QUEUE', 'default'),
'retry_after' => 90,
'block_for' => null,
],
This configuration will we be bound under queue.connections.custom
and set as the default.
Other drivers are supported, check the Laravel documentation.
Make sure you add to your user instructions the need to run:
$ php flarum queue:tables
This will migrate the jobs and failed_jobs tables into the database.