Committer: sbelyaev
LJSUP-10503: duplication of delay postsU trunk/cgi-bin/LJ/DelayedEntry/Scheduler.pm U trunk/cgi-bin/LJ/DelayedEntry.pm
Modified: trunk/cgi-bin/LJ/DelayedEntry/Scheduler.pm =================================================================== --- trunk/cgi-bin/LJ/DelayedEntry/Scheduler.pm 2012-09-05 14:32:00 UTC (rev 22818) +++ trunk/cgi-bin/LJ/DelayedEntry/Scheduler.pm 2012-09-05 14:52:20 UTC (rev 22819) @@ -84,7 +84,7 @@ my @entries; my $time = time() - 60*5; - my $list = $dbh->selectall_arrayref( "SELECT journalid, delayedid, posterid " . + my $list = $dbh->selectall_arrayref( "SELECT journalid, delayedid, posterid, lastposttry " . "FROM delayedlog2 ". "WHERE posttime <= NOW() AND " . "finaltime IS NULL AND " . @@ -97,7 +97,8 @@ push @entries, LJ::DelayedEntry->load_data($dbh, { journalid => $tuple->[0], delayed_id => $tuple->[1], - posterid => $tuple->[2]} ); + posterid => $tuple->[2], + lastpostry => $tuple->[3],} ); } return undef if !scalar @entries; @@ -172,14 +173,8 @@ return; } - foreach my $entry (@$entries) { - print "mark entry as posted:\n" . - "\tdelayed id = " . $entry->delayedid . - "\tpost date " . $entry->posterid . "\n" if $verbose; + @$entries = grep { $_->work_in_progress() } @$entries; - $entry->work_in_progress(); - } - $lock->unlock; foreach my $entry (@$entries) { Modified: trunk/cgi-bin/LJ/DelayedEntry.pm =================================================================== --- trunk/cgi-bin/LJ/DelayedEntry.pm 2012-09-05 14:32:00 UTC (rev 22818) +++ trunk/cgi-bin/LJ/DelayedEntry.pm 2012-09-05 14:52:20 UTC (rev 22819) @@ -254,15 +254,16 @@ my ($self) = @_; my $time = time(); - $self->journal->do( "UPDATE delayedlog2 SET ". - "lastposttry=? " . - "WHERE delayedid = ? AND " . - "journalid = ?", - undef, - $time, - $self->delayedid, - $self->journalid ); - + return $self->journal->do( "UPDATE delayedlog2 SET ". + "lastposttry=? " . + "WHERE delayedid = ? AND " . + "journalid = ? AND " . + "lastposttry = ?" , + undef, + $time, + $self->delayedid, + $self->journalid, + $self->{lastposttry}, ); } sub convert_from_data { @@ -718,6 +719,7 @@ $self->{poster} = LJ::want_user($opts->{posterid}); $self->{data} = __deserialize($data_ser); $self->{posttime} = __get_datetime($self->{data}); + $self->{lastposttry} = $opts->{lastposttry}; return $self; }