• Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • 4.0.0
    • 4.0.0
    • None
    • None

      La copie de catalogue est très longue car plusieurs contenus sont créés puis indexés dans Solr (174 contenus pour les données de démo)
      Pour éviter les incohérences dans les recherche, nous devons attendre la fin des observers d'indexation (future)

      La copie pourrait être bien plus rapide si l'indexation des contenus étaient traitée à la fin en masse plutôt que d'indexer un à un les contenus durant la copie (80s contre 10min en indexant au fur et à mesure)
      Mais il n'est pas possible de suspendre l'indexation pour tout le monde durant la copie de catalogue.

      Pour améliorer les perfs, il faudrait être capable de suspendre l'indexation uniquement pour les contenus issue de la copie de catalogue
      => Paramètre supplémentaire à passer aux l'observers ?

          [ODF-1509] La copie de catalogue est très longue

          Simon Prieul (Inactive) added a comment - - edited

          Dépend de RUNTIME-2570 afin d'

          1. ajouter automatiquement un argument sur tous les événements de type contenu créé/modifié/workflow changed, pour indiquer au SolrContentIndexer de ne pas commiter (argument ajouté par CMS-8615)
          2. avoir accès aux futures de tous les Observers de la requête courante pour être sûr que tous les updates Solr ont été envoyés avant de faire le commit Solr à la toute fin de la copie

          Simon Prieul (Inactive) added a comment - - edited Dépend de RUNTIME-2570 afin d' ajouter automatiquement un argument sur tous les événements de type contenu créé/modifié/workflow changed, pour indiquer au SolrContentIndexer de ne pas commiter (argument ajouté par CMS-8615 ) avoir accès aux futures de tous les Observers de la requête courante pour être sûr que tous les updates Solr ont été envoyés avant de faire le commit Solr à la toute fin de la copie

          Premier commit pour cette issue : la copie est exécutée en tache de fond + notification de fin de copie dans l'outil de notification

          Laurence Aumeunier added a comment - Premier commit pour cette issue : la copie est exécutée en tache de fond + notification de fin de copie dans l'outil de notification

          Laurence Aumeunier added a comment - - edited

          Pour indexer les contenus à la fin de la copie

          try
          {
                  List<Content> contents = Stream.of(copiedPrograms, copiedSubPrograms, copiedContainers, copiedCourseLists, copiedCourses)
                              .map(Map::values)
                              .flatMap(Collection::stream)
                              .map(id -> (Content) _resolver.resolveById(id))
                              .collect(Collectors.toList());
                      
                      
                  _solrIndexer.indexContents(contents);
          }
          catch (Exception e)
          {
                getLogger().error("Failed to index copied contents", e);
          }
          

          Laurence Aumeunier added a comment - - edited Pour indexer les contenus à la fin de la copie try { List<Content> contents = Stream.of(copiedPrograms, copiedSubPrograms, copiedContainers, copiedCourseLists, copiedCourses) .map(Map::values) .flatMap(Collection::stream) .map(id -> (Content) _resolver.resolveById(id)) .collect(Collectors.toList()); _solrIndexer.indexContents(contents); } catch (Exception e) { getLogger().error( "Failed to index copied contents" , e); }

            sprieul Simon Prieul (Inactive)
            laurence Laurence Aumeunier
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: