feat(search): debounce update search terms
This commit is contained in:
parent
5a2ddcb471
commit
ee465b38ff
2 changed files with 28 additions and 9 deletions
|
@ -1,9 +1,15 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module DossierSearchableConcern
|
||||
extend ActiveSupport::Concern
|
||||
|
||||
included do
|
||||
after_commit :update_search_terms_later
|
||||
|
||||
SEARCH_TERMS_DEBOUNCE = 30.seconds
|
||||
|
||||
kredis_flag :debounce_update_search_terms_flag
|
||||
|
||||
def update_search_terms
|
||||
search_terms = [
|
||||
user&.email,
|
||||
|
@ -21,7 +27,10 @@ module DossierSearchableConcern
|
|||
end
|
||||
|
||||
def update_search_terms_later
|
||||
DossierUpdateSearchTermsJob.perform_later(self)
|
||||
return if debounce_update_search_terms_flag.marked?
|
||||
|
||||
debounce_update_search_terms_flag.mark(expires_in: SEARCH_TERMS_DEBOUNCE)
|
||||
DossierUpdateSearchTermsJob.set(wait: SEARCH_TERMS_DEBOUNCE).perform_later(self)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue