feat(search): debounce update search terms

This commit is contained in:
Colin Darie 2024-04-25 17:44:05 +02:00
parent 5a2ddcb471
commit ee465b38ff
No known key found for this signature in database
GPG key ID: 4FB865FDBCA4BCC4
2 changed files with 28 additions and 9 deletions

View file

@ -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