X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fdistribqueuehandler.php;h=a7519c1d50729465000f6155f61d31f20e2bbe5f;hb=119d0f7dbab40f30170ba263de78d7e9cea984db;hp=4477468d0a38d523c26163b3afcc987805bf3617;hpb=7558e2fd61c527b31b5a49d29a59b6b0b1d6d542;p=quix0rs-gnu-social.git diff --git a/lib/distribqueuehandler.php b/lib/distribqueuehandler.php index 4477468d0a..a7519c1d50 100644 --- a/lib/distribqueuehandler.php +++ b/lib/distribqueuehandler.php @@ -49,57 +49,48 @@ class DistribQueueHandler } /** - * Here's the meat of your queue handler -- you're handed a Notice - * object, which you may do as you will with. + * Handle distribution of a notice after we've saved it: + * @li add to local recipient inboxes + * @li send email notifications to local @-reply targets + * @li run final EndNoticeSave plugin events + * @li put any remaining post-processing into the queues * * If this function indicates failure, a warning will be logged * and the item is placed back in the queue to be re-run. * + * @fixme addToInboxes is known to fail sometimes with large recipient sets + * * @param Notice $notice * @return boolean true on success, false on failure */ function handle($notice) { - // XXX: do we need to change this for remote users? - - try { - $notice->saveTags(); - } catch (Exception $e) { - $this->logit($notice, $e); - } - try { - $groups = $notice->saveGroups(); + $notice->addToInboxes(); } catch (Exception $e) { $this->logit($notice, $e); } try { - $recipients = $notice->saveReplies(); + $notice->sendReplyNotifications(); } catch (Exception $e) { $this->logit($notice, $e); } try { - $notice->addToInboxes($groups, $recipients); - } catch (Exception $e) { - $this->logit($notice, $e); - } - - try { - $notice->saveUrls(); + Event::handle('EndNoticeDistribute', array($notice)); } catch (Exception $e) { $this->logit($notice, $e); } try { Event::handle('EndNoticeSave', array($notice)); - // Enqueue for other handlers } catch (Exception $e) { $this->logit($notice, $e); } try { + // Enqueue for other handlers common_enqueue_notice($notice); } catch (Exception $e) { $this->logit($notice, $e); @@ -107,7 +98,7 @@ class DistribQueueHandler return true; } - + protected function logit($notice, $e) { common_log(LOG_ERR, "Distrib queue exception saving notice $notice->id: " .