diff options
author | abcang <abcang1015@gmail.com> | 2021-02-01 05:24:57 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-31 21:24:57 +0100 |
commit | 7ab53f221a3d66a0bbc94b36d847b7bcf62fbd16 (patch) | |
tree | 9f342e4abec9d11a64b464106fb1108ce514f5bb /app/controllers | |
parent | c8c764dd8b168ec876918d16b3f25280893d20dc (diff) |
Improved performance of notification preloading (#15640)
* Improved performance of notification preloading * Remove Cacheable from Notification * Fix test
Diffstat (limited to 'app/controllers')
-rw-r--r-- | app/controllers/api/v1/notifications_controller.rb | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/app/controllers/api/v1/notifications_controller.rb b/app/controllers/api/v1/notifications_controller.rb index 522c35ba5..f9d780839 100644 --- a/app/controllers/api/v1/notifications_controller.rb +++ b/app/controllers/api/v1/notifications_controller.rb @@ -31,12 +31,13 @@ class Api::V1::NotificationsController < Api::BaseController private def load_notifications - cache_collection_paginated_by_id( - browserable_account_notifications, - Notification, + notifications = browserable_account_notifications.includes(from_account: :account_stat).to_a_paginated_by_id( limit_param(DEFAULT_NOTIFICATIONS_LIMIT), params_slice(:max_id, :since_id, :min_id) ) + Notification.preload_cache_collection_target_statuses(notifications) do |target_statuses| + cache_collection(target_statuses, Status) + end end def browserable_account_notifications |