-
Bug
-
Résolution: Résolu
-
Majeur
-
6.04.14
-
Aucune
-
Aucune
-
Dev
Il y a une anomalie sur la mise à jour d'URLs de rubriques, liée à l'accès concurrent dans les demandes de mises à jour. Les mises à jour d'URL ne sont pas effectuées et des pages blanches sont rencontrées.
Lors de la mise à jour multiple de rubriques, la méthode ServiceUrlObserver.update est appelée à chaque mise à jour de rubrique ou site. Cette méthode supprime le job existant et crée un nouveau job pour la rubrique ou le site mis à jour. Le bloc n'étant pas synchronisé, il peut y avoir plusieurs demandes de création pour le même type de job (la clé du job est portée par le nom et le groupe du job de mise à jour d'URLs).
if (scheduler.isStarted()) { LOG.debug("scheduler Manager started, adding urlJob"); scheduler.deleteJob(new JobKey(UrlUpdaterJob.URL_JOB_NAME, UrlUpdaterJob.URL_JOB_GROUP)); scheduler.scheduleJob(urlJob, urlTrigger); } else { scheduler.getListenerManager().addSchedulerListener(new SchedulerListenerForUrl(scheduler, urlJob, urlTrigger)); LOG.debug("scheduler Manager not started, adding a listener, to put it"); }
Il faudrait gérer une file des mises à jour des URLs et ainsi pouvoir traiter de façon concurrente les différentes mises à jour d'URLs.
Contournement possible : supprimer les lignes des tables URL et SECTION_URL_LINK et redémarrer.