Projet

Général

Profil

Development #71036

communiquer régulièrement à authentic les utilisateurs "actifs"

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

Statut:
Fermé
Priorité:
Normal
Assigné à:
Version cible:
-
Début:
06 novembre 2022
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

Description

Appel à l'API keepalive (#67901),

POST sur /api/users/synchronization/ de

{
  "known_uuids": [uuid1, uuid2, ...],
  "keepalive": true
}

Les UUID sont les uuid des utilisateurs qui ont des demandes en cours. (← si jamais ça doit être autre chose, va falloir le dire)


Fichiers


Demandes liées

Lié à w.c.s. - Development #24430: Cronjob pour supprimer les utilisateurs sans compte en ligne quand ils n'ont plus de demande en coursFermé11 juin 2018

Actions

Révisions associées

Révision e93509be (diff)
Ajouté par Frédéric Péters il y a plus d'un an

misc: send list of active users to keepalive service (#71036)

Historique

#1

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

  • Lié à Development #24430: Cronjob pour supprimer les utilisateurs sans compte en ligne quand ils n'ont plus de demande en cours ajouté
#2

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

La branche est artificiellement au-dessus de #71034, c'est pour test_users.py un peu modernisé (fixture pub) (ça peut être rebasé sans ça, ou la modernisation peut passer dans un commit indépendant de ces tickets).

#3

Mis à jour par Thomas Noël il y a plus d'un an

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

(...) (← si jamais ça doit être autre chose, va falloir le dire)

Sans doute aussi "qui sont liés à des fiches".

#4

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

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

Sans doute aussi "qui sont liés à des fiches".

En effet (bon dommage on a AnyFormData pas AnyCardData, ça va dépasser un peu l'unique requête SQL).

#6

Mis à jour par Lauréline Guérin il y a plus d'un an

            for carddata in carddef.data_class().select(ignore_errors=True):
                if carddata.user_id:

du coup carddata peut valoir None non ?

        for user in get_publisher().user_class().get_ids(user_ids):

avec un ignore_errors ?
#7

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

Yep. (en passant je suivais un peu les ignore_errors dans wcs/sql.py et il y en a des inutiles, qui se perdent en route, je regarderai plus attentivement un autre jour).

#8

Mis à jour par Lauréline Guérin il y a plus d'un an

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

ok c'est piégeux pour les users, ailleurs dans le code on a du:

        prefetched_users = {
            str(x.id): x
            for x in get_publisher().user_class.get_ids(list(user_ids), ignore_errors=True)
            if x is not None
        }

alors qu'ajouter ignore_errors nettoie justement les None

#9

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

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

L'API n'est pas encore passée côté authentic mais au pire ça fera un message d'erreur par semaine,

commit e93509be304cb59dcb3da6a3551c605812a6c671
Author: Frédéric Péters <fpeters@entrouvert.com>
Date:   Sun Nov 6 14:23:19 2022 +0100

    misc: send list of active users to keepalive service (#71036)
#10

Mis à jour par Transition automatique il y a plus d'un an

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

Mis à jour par Transition automatique il y a plus d'un an

Automatic expiration

Formats disponibles : Atom PDF