about summary refs log tree commit diff
path: root/lib/presque/Role/Queue.pm
blob: fce83e2cb14b2788a4d2fc350a296f4fcf6516aa (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package presque::Role::Queue;

use Moose::Role;

sub new_queue {
    my ($self, $queue_name, $lkey) = @_;
    $self->application->redis->sadd('QUEUESET', $lkey);
    my $ckey = $self->_queue_stat($queue_name);
    $self->application->redis->set($ckey, 1);
}

sub push_job {
    my ($self, $queue_name, $lkey, $key, $delayed) = @_;
    my ($method, @args) = ('rpush', $lkey, $key);

    if ($delayed) {
        $method = 'zadd';
        @args = ($queue_name . ':delayed', $delayed, $key);
    }

    $self->application->redis->$method(@args,);
}

1;