]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Make sure the Attention::saveNew does not cause an exception so queue items get removed
authorMarcel van der Boom <marcel@hsdev.com>
Thu, 19 Jun 2014 08:36:52 +0000 (10:36 +0200)
committerMikael Nordfeldth <mmn@hethane.se>
Sun, 22 Jun 2014 15:22:04 +0000 (17:22 +0200)
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.

plugins/TwitterBridge/lib/tweetinqueuehandler.php

index 79d36d11d53c48b777c6bdbb45c7f75f9f92fe83..0ab74803058d208f461ed69fd929faeef43b2ed7 100644 (file)
@@ -55,7 +55,14 @@ class TweetInQueueHandler extends QueueHandler
             if ($flink instanceof Foreign_link) {
                 common_log(LOG_DEBUG, "TweetInQueueHandler - Got flink so add notice ".
                            $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 {
                common_log(LOG_DEBUG, "TweetInQueueHandler - No flink found for foreign user ".$receiver);
             }