Committer: sbelyaev
LJSUP-12836: Create additional notification on day of birthdayU trunk/bin/worker/birthday-notify
Modified: trunk/bin/worker/birthday-notify =================================================================== --- trunk/bin/worker/birthday-notify 2012-07-18 14:24:09 UTC (rev 22469) +++ trunk/bin/worker/birthday-notify 2012-07-19 08:21:01 UTC (rev 22470) @@ -105,7 +105,14 @@ # have already passed (eg, worker backlog) my $bdays = LJ::User->next_birthdays(@uids); + my $purge_is_needed = 0; + foreach my $u (values %$us) { + unless ($u) { + $purge_is_needed = 1; + next; + } + # don't want to process read-only users (being moved?) next if $u->readonly; @@ -134,6 +141,13 @@ $ct++; } + if ($purge_is_needed) { + foreach my $uid (keys %$us) { + remove_userid_from_cluster($uid, $working_clusterid) + unless $us->{$uid}; + } + } + # return and release our lock as it falls out of scope return $ct; @@ -181,6 +195,17 @@ return @$userids; } +sub remove_userid_from_cluster { + my ($uid, $cid) = @_; + debug("Cleaning up for userid: " . $uid); + + my $dbh = LJ::get_cluster_master($cid) + or die "Unable to get cluster reader for cluster: $cid"; + + $dbh->do("DELETE FROM birthdays WHERE userid = ?", undef, $uid); + die $dbh->errstr if $dbh->err; +} + sub remove_user_from_cluster { my ($u, $cid) = @_; debug("Cleaning up for moved user: " . $u->user);