* Add article's record key to Fastly Surrogate-Key to separate caches After #4744 we successfully setup an auto purging system based on Fastly's surrogate key based cache and purging API. Unfortunately this worked only in the `:show` action as comments are their own tree-based resource. The `:index` though, is related to a single article, so without the article's record key in the `Surrogate-Key` header the first time we hit the API the result would become the value stored in Fastly's API, for all articles. * Fix commentable mock for job spec * Add comment.commentable.purge to the worker as well * Add more thorough tests for commentable
17 lines
362 B
Ruby
17 lines
362 B
Ruby
module Comments
|
|
class BustCacheWorker
|
|
include Sidekiq::Worker
|
|
|
|
sidekiq_options queue: :high_priority
|
|
|
|
def perform(comment_id)
|
|
comment = Comment.find_by(id: comment_id)
|
|
return unless comment&.commentable
|
|
|
|
comment.purge
|
|
comment.commentable.purge
|
|
|
|
EdgeCache::Commentable::Bust.call(comment.commentable)
|
|
end
|
|
end
|
|
end
|