perf(preloader): preloader use batch for batches
This commit is contained in:
parent
ca12a56e6a
commit
6184b33a18
2 changed files with 15 additions and 4 deletions
|
@ -4,11 +4,12 @@ class ActiveStorage::DownloadableFile
|
||||||
def self.create_list_from_dossiers(dossiers:, user_profile:, export_template: nil)
|
def self.create_list_from_dossiers(dossiers:, user_profile:, export_template: nil)
|
||||||
pj_service = PiecesJustificativesService.new(user_profile:, export_template:)
|
pj_service = PiecesJustificativesService.new(user_profile:, export_template:)
|
||||||
|
|
||||||
dossiers = dossiers
|
files = []
|
||||||
.includes(:individual, :traitement, :etablissement, user: :france_connect_informations, avis: :expert, commentaires: [:instructeur, :expert], revision: [:revision_types_de_champ, :types_de_champ_public, :types_de_champ_private])
|
DossierPreloader.new(dossiers).in_batches_with_block do |loaded_dossiers|
|
||||||
|
files += pj_service.generate_dossiers_export(loaded_dossiers) + pj_service.liste_documents(loaded_dossiers)
|
||||||
|
end
|
||||||
|
|
||||||
loaded_dossiers = DossierPreloader.new(dossiers).in_batches
|
files
|
||||||
pj_service.generate_dossiers_export(loaded_dossiers) + pj_service.liste_documents(loaded_dossiers)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def self.cleanup_list_from_dossier(files)
|
def self.cleanup_list_from_dossier(files)
|
||||||
|
|
|
@ -13,6 +13,16 @@ class DossierPreloader
|
||||||
dossiers
|
dossiers
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def in_batches_with_block(size = DEFAULT_BATCH_SIZE, &block)
|
||||||
|
@dossiers.in_batches(of: size) do |batch|
|
||||||
|
data = Dossier.where(id: batch.ids).includes(:individual, :traitement, :etablissement, user: :france_connect_informations, avis: :expert, commentaires: [:instructeur, :expert], revision: :revision_types_de_champ)
|
||||||
|
|
||||||
|
dossiers = data.to_a
|
||||||
|
load_dossiers(dossiers)
|
||||||
|
yield(dossiers)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def all(pj_template: false)
|
def all(pj_template: false)
|
||||||
dossiers = @dossiers.to_a
|
dossiers = @dossiers.to_a
|
||||||
load_dossiers(dossiers, pj_template:)
|
load_dossiers(dossiers, pj_template:)
|
||||||
|
|
Loading…
Reference in a new issue