1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
|
#!/usr/bin/perl -w
# This code is a part of Slash, and is released under the GPL.
# Copyright 1997-2001 by Open Source Development Network. See README
# and COPYING for more information, or see http://slashcode.com/.
# $Id: message_delivery.pl,v 1.1.2.10 2001/10/24 19:40:33 pudge Exp $
use strict;
use File::Spec::Functions;
use Slash::Utility;
my $me = 'message_delivery.pl';
use vars qw( %task );
$task{$me}{timespec} = '5-59/5 * * * *';
$task{$me}{timespec_panic_1} = '5-59/15 * * * *'; # less often
$task{$me}{code} = sub {
my($virtual_user, $constants, $slashdb, $user) = @_;
my $messages = getObject('Slash::Messages');
unless ($messages) {
slashdLog("$me: could not instantiate Slash::Messages object");
return;
}
messagedLog("$me begin");
my($successes, $failures) = (0, 0);
my $count = $constants->{message_process_count} || 10;
my $msgs = $messages->gets($count);
my @good = $messages->process(@$msgs);
my %msgs = map { ($_->{id}, $_) } @$msgs;
for (@good) {
messagedLog("msg \#$_ sent successfully.");
delete $msgs{$_};
++$successes;
}
for (sort { $a <=> $b } keys %msgs) {
messagedLog("Error: msg \#$_ not sent successfully.");
++$failures;
}
messagedLog("$me end");
if ($successes or $failures) {
return "sent $successes ok, $failures failed";
} else {
return ;
}
};
my $errsub = sub {
doLog('messaged', \@_);
};
*messagedLog = $errsub unless defined &messagedLog;
1;
|