Fix PostgreSQL load when linking in announcements (#13250)
* Fix PostgreSQL load when linking in announcements Fixes #13245 by caching status lookups Since statuses are supposed to be known already and we only need their URLs and a few other things, caching them should be fine. Since it's only used by announcements so far, there won't be much statuses to cache. * Perform status lookup when saving announcements, not when rendering them * Change EntityCache#status to fetch URLs instead of looking into the database * Move announcement link lookup to publishing worker * Address issues pointed out during review
This commit is contained in:
parent
a889756dd5
commit
89e28c7674
6 changed files with 32 additions and 5 deletions
|
@ -14,6 +14,7 @@
|
|||
# created_at :datetime not null
|
||||
# updated_at :datetime not null
|
||||
# published_at :datetime
|
||||
# status_ids :bigint is an Array
|
||||
#
|
||||
|
||||
class Announcement < ApplicationRecord
|
||||
|
@ -49,7 +50,13 @@ class Announcement < ApplicationRecord
|
|||
end
|
||||
|
||||
def statuses
|
||||
@statuses ||= Status.from_text(text)
|
||||
@statuses ||= begin
|
||||
if status_ids.nil?
|
||||
[]
|
||||
else
|
||||
Status.where(id: status_ids, visibility: [:public, :unlisted])
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def tags
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue