App-Environ-Que
view release on metacpan or search on metacpan
lib/App/Environ/Que.pm view on Meta::CPAN
use strict;
use warnings;
use v5.10;
use utf8;
use App::Environ;
use App::Environ::Mojo::Pg;
use Carp qw(croak);
use Cpanel::JSON::XS;
use Params::Validate qw( validate_pos validate );
my $INSTANCE;
my $sql = q{
INSERT INTO public.que_jobs
( queue, priority, run_at, job_class, args )
VALUES (
coalesce(?::text, ''::text),
coalesce(?::smallint, 100::smallint),
coalesce(?::timestamptz, now()::timestamptz),
lib/App/Environ/Que.pm view on Meta::CPAN
}
);
App::Environ->register( __PACKAGE__, postfork => sub { undef $INSTANCE } );
my $JSON = Cpanel::JSON::XS->new;
sub instance {
my $class = shift;
my ($connector) = validate_pos( @_, 1 );
unless ($INSTANCE) {
my $pg = App::Environ::Mojo::Pg->pg($connector);
$INSTANCE = bless { pg => $pg }, $class;
}
return $INSTANCE;
}
sub enqueue {
my __PACKAGE__ $self = shift;
my $cb = pop;
croak 'No cb' unless $cb;
my %params = validate( @_, $VALIDATION{enqueue} );
my $args = $JSON->encode( $params{args} );
$self->{pg}->db->query(
$sql,
$params{queue},
$params{priority},
$params{run_at},
$params{type},
$args,
( run in 0.587 second using v1.01-cache-2.11-cpan-4d50c553e7e )