Disons que j'ai 100 serveurs exécutant chacun un démon - appelons-le server
- ce serveur est responsable de générer un thread pour chaque utilisateur de ce service particulier (disons 1000 threads par serveur). Chaque N
secondes chaque thread fait quelque chose et obtient des informations pour cet utilisateur particulier (ce modèle de demande/réponse ne peut pas être modifié). Le problème que j'ai un est parfois un fil se bloque et arrête de faire quelque chose. J'ai besoin d'un moyen de savoir que les données des utilisateurs sont obsolètes et doivent être actualisées.Modèle de serveur distribué
La seule idée que j'ai est tous les 5N
secondes ont le fil jour un enregistrement MySQL associé à cet utilisateur (une colonne last_scanned
dans la table des utilisateurs), et un autre processus qui vérifie cette table toutes les 15N
secondes, si la colonne last_scanned
est pas en cours, redémarrez le fil.
Lorsque le thread arrête de faire quelque chose, est-ce le comportement attendu ou est-ce dû à une erreur? – Jordan
En raison d'une erreur - je devrais spécifier que le fil se bloque (et oui, je devrais également corriger l'erreur afin que cela n'arrive pas en premier lieu, mais laisse ignorer cela) – v0idless