Fix records not being indexed sometimes (#12024)

It's possible that after commit callbacks were not firing when
exceptions occurred in the process. Also, the default Sidekiq
strategy does not push indexing jobs immediately, which is not
necessary and could be part of the issue too.
This commit is contained in:
Eugen Rochko
2019-10-01 01:19:11 +02:00
committed by GitHub
parent 12c4ec0c83
commit 5c42f47617
10 changed files with 46 additions and 8 deletions

View File

@ -129,7 +129,7 @@ class Account < ApplicationRecord
delegate :chosen_languages, to: :user, prefix: false, allow_nil: true
update_index('accounts#account', :self) if Chewy.enabled?
update_index('accounts#account', :self)
def local?
domain.nil?

View File

@ -16,7 +16,7 @@
class AccountStat < ApplicationRecord
belongs_to :account, inverse_of: :account_stat
update_index('accounts#account', :account) if Chewy.enabled?
update_index('accounts#account', :account)
def increment_count!(key)
update(attributes_for_increment(key))

View File

@ -5,6 +5,12 @@ class ApplicationRecord < ActiveRecord::Base
include Remotable
class << self
def update_index(_type_name, *_args, &_block)
super if Chewy.enabled?
end
end
def boolean_with_default(key, default_value)
value = attributes[key]

View File

@ -13,7 +13,7 @@
class Favourite < ApplicationRecord
include Paginable
update_index('statuses#status', :status) if Chewy.enabled?
update_index('statuses#status', :status)
belongs_to :account, inverse_of: :favourites
belongs_to :status, inverse_of: :favourites

View File

@ -39,7 +39,7 @@ class Status < ApplicationRecord
# will be based on current time instead of `created_at`
attr_accessor :override_timestamps
update_index('statuses#status', :proper) if Chewy.enabled?
update_index('statuses#status', :proper)
enum visibility: [:public, :unlisted, :private, :direct, :limited], _suffix: :visibility

View File

@ -49,7 +49,7 @@ class Tag < ApplicationRecord
after_save :save_account_tag_stat
update_index('tags#tag', :self) if Chewy.enabled?
update_index('tags#tag', :self)
def account_tag_stat
super || build_account_tag_stat