Constants for account refresh (#32420)
This commit is contained in:
		
							parent
							
								
									fae1de699c
								
							
						
					
					
						commit
						2f906ed55a
					
				@ -65,6 +65,8 @@ class Account < ApplicationRecord
 | 
			
		||||
  )
 | 
			
		||||
 | 
			
		||||
  BACKGROUND_REFRESH_INTERVAL = 1.week.freeze
 | 
			
		||||
  REFRESH_DEADLINE = 6.hours
 | 
			
		||||
  STALE_THRESHOLD = 1.day
 | 
			
		||||
  DEFAULT_FIELDS_SIZE = 4
 | 
			
		||||
  INSTANCE_ACTOR_ID = -99
 | 
			
		||||
 | 
			
		||||
@ -229,13 +231,13 @@ class Account < ApplicationRecord
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def possibly_stale?
 | 
			
		||||
    last_webfingered_at.nil? || last_webfingered_at <= 1.day.ago
 | 
			
		||||
    last_webfingered_at.nil? || last_webfingered_at <= STALE_THRESHOLD.ago
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def schedule_refresh_if_stale!
 | 
			
		||||
    return unless last_webfingered_at.present? && last_webfingered_at <= BACKGROUND_REFRESH_INTERVAL.ago
 | 
			
		||||
 | 
			
		||||
    AccountRefreshWorker.perform_in(rand(6.hours.to_i), id)
 | 
			
		||||
    AccountRefreshWorker.perform_in(rand(REFRESH_DEADLINE), id)
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def refresh!
 | 
			
		||||
 | 
			
		||||
@ -208,16 +208,16 @@ RSpec.describe Account do
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'when last_webfingered_at is more than 24 hours before' do
 | 
			
		||||
      let(:last_webfingered_at) { 25.hours.ago }
 | 
			
		||||
    context 'when last_webfingered_at is before the threshold' do
 | 
			
		||||
      let(:last_webfingered_at) { (described_class::STALE_THRESHOLD + 1.hour).ago }
 | 
			
		||||
 | 
			
		||||
      it 'returns true' do
 | 
			
		||||
        expect(account.possibly_stale?).to be true
 | 
			
		||||
      end
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    context 'when last_webfingered_at is less than 24 hours before' do
 | 
			
		||||
      let(:last_webfingered_at) { 23.hours.ago }
 | 
			
		||||
    context 'when last_webfingered_at is after the threshold' do
 | 
			
		||||
      let(:last_webfingered_at) { (described_class::STALE_THRESHOLD - 1.hour).ago }
 | 
			
		||||
 | 
			
		||||
      it 'returns false' do
 | 
			
		||||
        expect(account.possibly_stale?).to be false
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user