PAGI::FastAPI::Queue::Driver::Redis

CPAN version

Redis Storage Driver for PAGI::FastAPI::Queue.

PAGI::FastAPI::Queue::Driver::Redis is a storage driver plugin for PAGI::FastAPI::Queue. It stores each topic as a Redis list, so queued items are shared across every worker process and host pointed at the same Redis instance and key prefix - unlike the built-in, in-process PAGI::FastAPI::Queue::Driver::Memory.

It's built on Async::Redis (Future::IO-based) rather than Net::Async::Redis, matching PAGI::FastAPI's own documented event-loop philosophy: Future::IO is the goal, IO::Async is an implementation detail.

SYNOPSIS

use PAGI::FastAPI::Queue;
use PAGI::FastAPI::Depends qw(Depends);

my $queue = PAGI::FastAPI::Queue->new(
    driver  => 'PAGI::FastAPI::Queue::Driver::Redis',
    options => {
        host   => '127.0.0.1',
        port   => 6379,
        prefix => 'myapp:queue:',
    },
);

$app->post('/jobs',
    dependencies => [ Depends($queue->dep, key => 'queue') ],
    handler      => async sub ($c) {
        await $c->stash->{queue}->push('emails', { to => 'a@b.com' });
        return { queued => 1 };
    },
);

INSTALLATION

Install the distribution from CPAN using your preferred client:

cpanm PAGI::FastAPI::Queue::Driver::Redis

This driver can also be used with a caller-supplied client (see the redis constructor option in the POD), so Async::Redis is not a hard dependency of this distribution. Install it yourself if you rely on the driver's default auto-connect behaviour:

cpanm Async::Redis

Copyright (C) 2026 Mohammad Sajid Anwar.

This program is free software; you can redistribute it and/or modify it under the terms of the Artistic License (2.0).