diff options
author | Nick Thomas <nick@gitlab.com> | 2018-04-11 19:04:10 +0000 |
---|---|---|
committer | Nick Thomas <nick@gitlab.com> | 2018-04-11 19:04:10 +0000 |
commit | 84c70f4335e1b4f496f29cb99cc7fdaf926a5571 (patch) | |
tree | 7d6e86b43644076bfb007d07e0cab491f843a984 | |
parent | 9f8d91c94e6ad41c970931d5eab6948fad31187b (diff) | |
parent | 1ce0595b18e3cb4caa551f9f0f03b264adb1e70e (diff) | |
download | gitlab-ce-84c70f4335e1b4f496f29cb99cc7fdaf926a5571.tar.gz |
Merge branch 'mk/geo/backport-broadcast-message-cache-expiration-hook' into 'master'
[CE Backport] Propagate broadcast messages to secondaries
See merge request gitlab-org/gitlab-ce!18324
-rw-r--r-- | app/models/broadcast_message.rb | 6 | ||||
-rw-r--r-- | spec/models/broadcast_message_spec.rb | 6 |
2 files changed, 10 insertions, 2 deletions
diff --git a/app/models/broadcast_message.rb b/app/models/broadcast_message.rb index 0b561203914..4aa236555cb 100644 --- a/app/models/broadcast_message.rb +++ b/app/models/broadcast_message.rb @@ -19,7 +19,7 @@ class BroadcastMessage < ActiveRecord::Base after_commit :flush_redis_cache def self.current - messages = Rails.cache.fetch(CACHE_KEY) { current_and_future_messages.to_a } + messages = Rails.cache.fetch(CACHE_KEY, expires_in: cache_expires_in) { current_and_future_messages.to_a } return messages if messages.empty? @@ -36,6 +36,10 @@ class BroadcastMessage < ActiveRecord::Base where('ends_at > :now', now: Time.zone.now).order_id_asc end + def self.cache_expires_in + nil + end + def active? started? && !ended? end diff --git a/spec/models/broadcast_message_spec.rb b/spec/models/broadcast_message_spec.rb index 461e754dc1f..5326f9cb8c0 100644 --- a/spec/models/broadcast_message_spec.rb +++ b/spec/models/broadcast_message_spec.rb @@ -51,7 +51,11 @@ describe BroadcastMessage do expect(described_class).to receive(:where).and_call_original.once - 2.times { described_class.current } + described_class.current + + Timecop.travel(1.year) do + described_class.current + end end it 'includes messages that need to be displayed in the future' do |