ayles-software/laravel-cloudflare-queue

Cloudflare queue driver for laravel.

0.3.0 2025-08-13 02:58 UTC

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:

  1. Install dependencies:

    composer install
  2. Run the tests:

    ./vendor/bin/pest