From dc22ed84807555f6a16c041c16b3bc607c6587d8 Mon Sep 17 00:00:00 2001 From: Brion Vibber Date: Sat, 22 May 2010 17:43:56 -0700 Subject: Hotpatch for Facebook mirror problems: drop messages when hitting rate limit (err 341) instead of retrying forever. On unknown errors, now throwing an exception so it'll hit the message retry limits. --- plugins/Facebook/facebookutil.php | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/plugins/Facebook/facebookutil.php b/plugins/Facebook/facebookutil.php index ab2d42726..045891649 100644 --- a/plugins/Facebook/facebookutil.php +++ b/plugins/Facebook/facebookutil.php @@ -158,9 +158,22 @@ function facebookBroadcastNotice($notice) remove_facebook_app($flink); - } else { + } else if ($code == 341) { + // 341 Feed action request limit reached - Unable to update Facebook status + // Reposting immediately probably won't work, so drop the message for now. :( + + common_log(LOG_ERR, "Facebook rate limit hit: dropping notice $notice->id"); + return true; + } else { // Try sending again later. + // + // @fixme at the moment, returning false here could lead to an infinite loop + // if the error condition isn't actually transitory. + // + // Temporarily throwing an exception to kill the process so it'll hit our + // retry limits. + throw new Exception("Facebook error $code on notice $notice->id"); return false; } -- cgit v1.2.3