The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Role::Pg::Notify - Client PostgreSQL notification Role

VERSION

version 0.001

DESCRIPTION

This role adds easy notification to client programs connected to a PostgreSQL database.

NAME

Role::Pg::Notify

ATTRIBUTES

notify_dbh

Role::Pg::Notify tries to guess your dbh. If it isn't a standard DBI::db named dbh, or constructed in a DBIx::Class schema called schema, you have to return the dbh from _build_notify_dbh.

METHODS

listen

 $self->listen( queue => 'queue_name' );
 $self->listen( queue => \@queues );

Sets up the listener. Quit listening to the named queues.

Returns undef immediately if no queue is provided.

unlisten

 $self->unlisten( queue => 'queue_name' );
 $self->unlisten( queue => \@queues );

Quit listening to the named queues.

Returns undef immediately if no queue is provided.

notify

 $self->notify( queue => 'queue_name' );
 $self->notify( queue => 'queue_name', payload => $data  );

Sends an asynchronous notification to the named queue, with an optional payload.

Returns undef immediately if no queue name is provided.

get_notification

 my $notifies = $self->get_notification();

Retrievies the pending notifications. The return value is an arrayref where each row looks like this:

 my ($name, $pid, $payload) = @$notify;

Returns undef if no notification was found.

set_listen

 my $notifies = $self->set_listen($timeout);

Retrievies the pending notifications. The return value is an arrayref where each row looks like this:

 my ($name, $pid, $payload) = @$notify;

If no notification is found, set_listen listens $timeout seconds. If any notification to any queue we're listening on is received, it will be returned immediately.

Not passing $timeout (or passing undef) means that set_listen will wait forever (or until a notification is received).

Returns undef if no notification was received within the requested time.

AUTHOR

Kaare Rasmussen <kaare@cpan.org>.

COPYRIGHT

Copyright (C) 2014, Kaare Rasmussen

This module is free software; you can redistribute it or modify it under the same terms as Perl itself.

AUTHOR

Kaare Rasmussen <kaare at cpan dot net>

COPYRIGHT AND LICENSE

This software is copyright (c) 2014 by Kaare Rasmussen.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.