forked from mirrors/catstodon
Preheat status cache
This commit is contained in:
parent
6fa4e01139
commit
19b9e1e2c3
4 changed files with 16 additions and 4 deletions
8
app/services/warm_cache_service.rb
Normal file
8
app/services/warm_cache_service.rb
Normal file
|
@ -0,0 +1,8 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
class WarmCacheService < BaseService
|
||||
def call(cacheable)
|
||||
full_item = cacheable.class.where(id: cacheable.id).with_includes.first
|
||||
Rails.cache.write(cacheable.cache_key, full_item)
|
||||
end
|
||||
end
|
|
@ -4,7 +4,10 @@ class DistributionWorker
|
|||
include Sidekiq::Worker
|
||||
|
||||
def perform(status_id)
|
||||
FanOutOnWriteService.new.call(Status.find(status_id))
|
||||
status = Status.find(status_id)
|
||||
|
||||
FanOutOnWriteService.new.call(status)
|
||||
WarmCacheService.new.call(status)
|
||||
rescue ActiveRecord::RecordNotFound
|
||||
true
|
||||
end
|
||||
|
|
|
@ -20,11 +20,12 @@ Rails.application.configure do
|
|||
host: ENV['REDIS_HOST'] || 'localhost',
|
||||
port: ENV['REDIS_PORT'] || 6379,
|
||||
db: 0,
|
||||
namespace: 'cache'
|
||||
namespace: 'cache',
|
||||
expires_in: 1.minute,
|
||||
}
|
||||
|
||||
config.public_file_server.headers = {
|
||||
'Cache-Control' => 'public, max-age=172800'
|
||||
'Cache-Control' => 'public, max-age=172800',
|
||||
}
|
||||
else
|
||||
config.action_controller.perform_caching = false
|
||||
|
|
|
@ -64,7 +64,7 @@ Rails.application.configure do
|
|||
password: ENV.fetch('REDIS_PASSWORD') { false },
|
||||
db: 0,
|
||||
namespace: 'cache',
|
||||
expires_in: 20.minutes
|
||||
expires_in: 20.minutes,
|
||||
}
|
||||
|
||||
# Enable serving of images, stylesheets, and JavaScripts from an asset server.
|
||||
|
|
Loading…
Reference in a new issue