Projet

Général

Profil

Development #74037

ne pas actualiser les récurrences toutes les cinq minutes

Ajouté par Frédéric Péters il y a environ un an. Mis à jour il y a environ un an.

Statut:
Rejeté
Priorité:
Normal
Assigné à:
-
Catégorie:
-
Version cible:
-
Début:
31 janvier 2023
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Non
Planning:
Non

Description

On a :

cron2 = minute=-5,unique=1 /usr/bin/chrono-manage tenant_command update_event_recurrences --all-tenants -v0

mais ça consomme dans le vide les séquences postgresql (cf #74001).

Est-ce vraiment utile de tourner ça toutes les 5 minutes ? (il me semble que non ?)


Demandes liées

Lié à Chrono - Bug #74001: api fillslot → DataError: integer out of rangeFermé31 janvier 2023

Actions

Historique

#1

Mis à jour par Frédéric Péters il y a environ un an

  • Lié à Bug #74001: api fillslot → DataError: integer out of range ajouté
#2

Mis à jour par Valentin Deniaud il y a environ un an

Frédéric Péters a écrit :

Est-ce vraiment utile de tourner ça toutes les 5 minutes ? (il me semble que non ?)

Il y a d'un côté le fonctionnement auquel tu penses : si un évènement récurrent est sans date de fin, on crée un an d'évènements réservables, et chaque jour un nouveau apparaît. Ici bien sûr on pourrait tourner le cron bien moins régulièrement.

Mais ce n'est pas la raison d'être du cron, qui sert en vérité à gérer les exceptions.
Dans le cas où on va ajouter une exception simple dans le backoffice pour un agenda donné, on pourrait aller tout de suite supprimer les évènements couverts, pas besoin d'asynchrone. Par contre, si les exceptions sont synchronisées depuis un ICS, ou récupérées depuis un calendrier d'indispo : alors là il faut un cron qui aille régulièrement regarder l'état des exceptions connues pour supprimer les évènements qui ne doivent pas être réservables.
C'est pour ça qu'il y a ce cron, parce qu'actuellement on ne sait pas trop quand arrivent de nouvelles exceptions.

On peut quand même réduire la fréquence (une heure c'est sûrement acceptable ?) mais il faudra quand même du code pour déclencher la mise à jour des exceptions en cas d'ajout simple, où un délai important paraîtrait bizarre (je pense qu'on avait pas les jobs uwsgi au moment où ce cron est apparu).

#3

Mis à jour par Lauréline Guérin il y a environ un an

Est-ce qu'on pourrait faire l'ajout des nouvelles occurrences une fois par jour, et la suppression des occurrences obsolètes plus fréquemment ?
C'est à dire, splitter la méthode update_recurrences ? Ou ajouter un param ?

#4

Mis à jour par Valentin Deniaud il y a environ un an

Non car ça se joue dans les deux sens, il faut à la fois supprimer les évènements couverts par une nouvelle exception et ajouter les évènements « découverts » lors de la suppression d'une exception. Cet ajout se fait avec la même requête qui crée les nouvelles occurrences.

#5

Mis à jour par Valentin Deniaud il y a environ un an

  • Statut changé de Nouveau à Rejeté

Résolu via #74105.

Formats disponibles : Atom PDF