From 8f2672aa29d77dbf75ea92824da679dc35802a26 Mon Sep 17 00:00:00 2001 From: ISHIKAWA Mutsumi Date: Sun, 4 Nov 2012 11:15:12 +0900 Subject: [PATCH 1/1] update to support dequeue delay --- lib/Mubot4FB/Queue/Worker.pm | 11 +++++++++-- lib/Mubot4FB/Worker.pm | 2 +- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/lib/Mubot4FB/Queue/Worker.pm b/lib/Mubot4FB/Queue/Worker.pm index 6406bdd..0d33bcb 100644 --- a/lib/Mubot4FB/Queue/Worker.pm +++ b/lib/Mubot4FB/Queue/Worker.pm @@ -14,9 +14,16 @@ use JSON::XS; use Data::Dumper; sub new { - my ($class, $cfg, $func, $dbh) = @_; - my $self = $class->SUPER::new($dbh, {functions => [$func]}); + my ($class, $cfg, $dbh, $opts) = @_; + my $self = $class->SUPER::new($dbh, $opts); $self->{cfg} = $cfg; + + $self->{find_job_query} = sprintf('SELECT * FROM %s WHERE func IN (%s) AND enqueue_time < NOW() - INTERVAL %s SECOND ORDER BY id LIMIT %s', + ($opts->{table_name}||'job'), + join(', ', map { "'$_'" } @{$opts->{functions}}), + ($opts->{find_delay}||60), + ($opts->{job_find_size}||50), + ); bless $self, $class; return $self; } diff --git a/lib/Mubot4FB/Worker.pm b/lib/Mubot4FB/Worker.pm index de8658b..27115ec 100644 --- a/lib/Mubot4FB/Worker.pm +++ b/lib/Mubot4FB/Worker.pm @@ -28,7 +28,7 @@ sub init { $me->{c} = Mubot4FB::Config->new($config_name); my $cfg = $me->{cfg} = $me->{c}->{cfg}; $me->{db} = Mubot4FB::DB->new($me->{cfg}); - $me->{queue} = Mubot4FB::Queue::Worker->new($me->{cfg}, $worker_name, $me->{db}->{dbh}); + $me->{queue} = Mubot4FB::Queue::Worker->new($me->{cfg}, $me->{db}->{dbh}, {functions => [$worker_name]}); $me->{worker_file} = $worker_name . '.pm'; $me->{worker_file} =~ s/::/\//g; require($me->{worker_file}); -- 2.11.0