Make sure the Attention::saveNew does not cause an exception so queue items get removed

It's less of a problem that one queue-item does not get handled, attention wise,
than that the queue keeps filling up. The typical error raised here is 'already exists'
so it's not even the case that the item won't get handled (it already has been).

The real problem is that the queue_item table accepts duplicates (content-wise) which it
should not.
This commit is contained in:
Marcel van der Boom 2014-06-19 10:36:52 +02:00 committed by Mikael Nordfeldth
parent 414a95a784
commit 42104612bd

View File

@ -55,7 +55,14 @@ class TweetInQueueHandler extends QueueHandler
if ($flink instanceof Foreign_link) { if ($flink instanceof Foreign_link) {
common_log(LOG_DEBUG, "TweetInQueueHandler - Got flink so add notice ". common_log(LOG_DEBUG, "TweetInQueueHandler - Got flink so add notice ".
$notice->id." to attentions for user ".$flink->user_id); $notice->id." to attentions for user ".$flink->user_id);
Attention::saveNew($notice, $flink->getProfile()); try {
Attention::saveNew($notice, $flink->getProfile());
} catch (Exception $e) {
// Log the exception, but make sure we don't bail out, we
// still have a queue item to remove here-after.
common_log(LOG_ERR, "Failed adding notice {$notice->id} to attentions for user {$flink->user_id}: " .
$e->getMessage());
}
} else { } else {
common_log(LOG_DEBUG, "TweetInQueueHandler - No flink found for foreign user ".$receiver); common_log(LOG_DEBUG, "TweetInQueueHandler - No flink found for foreign user ".$receiver);
} }