0
0
Fork 0

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:
ThibG 2020-04-05 12:51:22 +02:00 committed by GitHub
parent a889756dd5
commit 89e28c7674
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 32 additions and 5 deletions

View file

@ -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