/** * 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) { try { $notice->addToInboxes(); } catch (Exception $e) { $this->logit($notice, $e); } try { $notice->sendReplyNotifications(); } 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 { common_enqueue_notice($notice); } catch (Exception $e) { $this->logit($notice, $e); } return true; }
/** * 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. * * @param Notice $notice * @return boolean true on success, false on failure */ public function handle(Notice $notice) { // We have to manually add attentions to non-profile subs and non-mentions $ptAtts = $notice->getAttentionsFromProfileTags(); foreach (array_keys($ptAtts) as $profile_id) { $profile = Profile::getKV('id', $profile_id); if ($profile instanceof Profile) { try { common_debug('Adding Attention for ' . $notice->getID() . ' profile ' . $profile->getID()); Attention::saveNew($notice, $profile); } catch (Exception $e) { $this->logit($notice, $e); } } } try { $notice->sendReplyNotifications(); } catch (Exception $e) { $this->logit($notice, $e); } try { Event::handle('EndNoticeDistribute', array($notice)); } catch (Exception $e) { $this->logit($notice, $e); } try { Event::handle('EndNoticeSave', array($notice)); } catch (Exception $e) { $this->logit($notice, $e); } try { // Enqueue for other handlers common_enqueue_notice($notice); } catch (Exception $e) { $this->logit($notice, $e); } return true; }
function common_broadcast_notice($notice, $remote = false) { if (common_config('queue', 'enabled')) { // Do it later! return common_enqueue_notice($notice); } else { return common_real_broadcast($notice, $remote); } }