ayles-software / laravel-cloudflare-queue
Cloudflare queue driver for laravel.
0.3.0
2025-08-13 02:58 UTC
Requires
- php: ^8.4
- laravel/framework: ^12.0
Requires (Dev)
- mockery/mockery: ^1.5
- pestphp/pest: ^3.8
This package is auto-updated.
Last update: 2025-08-13 02:59:17 UTC
README
A Laravel queue driver for Cloudflare Queues. This is still a work in progress.
Configuration
Add the following to your config/queue.php
file:
'cloudflare' => [ 'driver' => 'cloudflare', 'account_id'=> env('CLOUDFLARE_ACCOUNT_ID'), 'queue_id' => env('CLOUDFLARE_QUEUE_ID'), 'api_token' => env('CLOUDFLARE_API_TOKEN'), ],
If are using CF workers and pushing raw jobs, you can set a raw handler that will be used to process the raw job:
'cloudflare' => [ 'driver' => 'cloudflare', 'raw_handler' => CloudflareRawJobHandler::class, 'account_id'=> env('CLOUDFLARE_ACCOUNT_ID'), 'queue_id' => env('CLOUDFLARE_QUEUE_ID'), 'api_token' => env('CLOUDFLARE_API_TOKEN'), ],
Example of a raw CF job:
class WebhookEmailEvent implements ShouldQueue { use Dispatchable, InteractsWithQueue, Queueable, SerializesModels; public function __construct(public readonly array $data) { // } public function handle() { // do something } }
Example of pushing a raw CF job to a Queue using JS:
export default { async fetch(request, env, context) { await env.MY_QUEUE.send({ food: "lemons", }); return new Response('Ok'); } }
Testing
This package includes a comprehensive test suite using Pest PHP. To run the tests:
-
Install dependencies:
composer install
-
Run the tests:
./vendor/bin/pest