Projet

Général

Profil

Development #81734

stats, optimiser le calcul du délai de traitement

Ajouté par Valentin Deniaud il y a 7 mois. Mis à jour il y a 5 mois.

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
28 septembre 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non
Tags:

Description

Ça timeout sur les gros formulaires.

Révisions associées

Révision 9284e946 (diff)
Ajouté par Valentin Deniaud il y a 5 mois

statistics: remove fallback on receipt time in resolution times (#81734)

Révision d9290667 (diff)
Ajouté par Valentin Deniaud il y a 5 mois

tests: add more resolution times statistics tests (#81734)

Révision 78d64f0b (diff)
Ajouté par Valentin Deniaud il y a 5 mois

statistics: aggregate resolution times with sql (#81734)

Historique

#2

Mis à jour par Valentin Deniaud il y a 7 mois

  • Assigné à mis à Valentin Deniaud
#4

Mis à jour par Valentin Deniaud il y a 7 mois

  • Assigné à changé de Valentin Deniaud à Pierre Ducroquet

C'est ResolutionTimeView.get_statistics qu'il faut regarder, merci Pierre

#5

Mis à jour par Pierre Ducroquet il y a 7 mois

La requête SQL "brute" correspondant à ce besoin:

with
        end_statuses as (select (values('wf-finished')) status),
        start_status as (select (values('wf-new')) status),
        foo as (
SELECT
        f.id,
        f.status,
        f.receipt_time,
        array_agg(start_evo.time) as starts,
        (array_agg(end_evo.time))[1] as end_time
FROM formdata_101_allo_toulouse_signalements f
JOIN formdata_101_allo_toulouse_signalements_evolutions start_evo ON start_evo.formdata_id = f.id AND start_evo.status in (select * from start_status) 
JOIN formdata_101_allo_toulouse_signalements_evolutions end_evo on end_evo.formdata_id = f.id AND end_evo.status in (select * from end_statuses) 
GROUP BY 1  ),
        bar as (
                SELECT id, COALESCE((select * from unnest(starts) x where x <= foo.end_time order by x desc limit 1), receipt_time) as start_time, end_time FROM foo
),
zoo as (SELECT end_time - start_time as d FROM bar WHERE end_time IS NOT NULL AND start_time IS NOT NULL)
select min(d), max(d), avg(d), percentile_cont(0.5) WITHIN GROUP (ORDER BY d) from zoo;

Je vois pour intégrer ça directement dans wcs.

#6

Mis à jour par Robot Gitea il y a 7 mois

  • Statut changé de Nouveau à En cours

Pierre Ducroquet (pducroquet) a ouvert une pull request sur Gitea concernant cette demande :

#7

Mis à jour par Pierre Ducroquet il y a 7 mois

Note : la version optimisée ainsi s'exécute en moins de 3 secondes, contre un temps supérieur à 60s (non déterminé) pour la version python.

#8

Mis à jour par Valentin Deniaud il y a 5 mois

  • Assigné à changé de Pierre Ducroquet à Valentin Deniaud
#9

Mis à jour par Robot Gitea il y a 5 mois

Valentin Deniaud (vdeniaud) a ouvert une pull request sur Gitea concernant cette demande :

#10

Mis à jour par Robot Gitea il y a 5 mois

  • Statut changé de En cours à Solution proposée
#11

Mis à jour par Robot Gitea il y a 5 mois

  • Statut changé de Solution proposée à Solution validée

Frédéric Péters (fpeters) a approuvé une pull request sur Gitea concernant cette demande :

#12

Mis à jour par Robot Gitea il y a 5 mois

  • Statut changé de Solution validée à Résolu (à déployer)

Valentin Deniaud (vdeniaud) a mergé une pull request sur Gitea concernant cette demande :

#13

Mis à jour par Transition automatique il y a 5 mois

  • Statut changé de Résolu (à déployer) à Solution déployée
#14

Mis à jour par Robot Gitea il y a 5 mois

Valentin Deniaud (vdeniaud) a fermé une pull request sur Gitea concernant cette demande.

#15

Mis à jour par Transition automatique il y a 3 mois

Automatic expiration

Formats disponibles : Atom PDF