[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: RE : [Tsp-devel] Question "fin de cycle"
From: |
Eric Noulard |
Subject: |
Re: RE : [Tsp-devel] Question "fin de cycle" |
Date: |
Tue, 5 Dec 2006 16:24:50 +0100 |
Le 05/12/06, ALAUX, Virginie<address@hidden> a écrit :
Réponse à ta question :
Pourquoi as-tu BESOIN de savoir si ton groupe est totalement reçu?
Je dois attendre la fin de réception d'un groupe pour le traiter. En effet,
chaque groupe est composé de paramètres qui sont soient archivés sur disque,
soit redistribués à différents clients via un middleware. La structure utilisée
est un packet (OCDS) composé d'un header et d'un body, lui-même contenant tous
les paramètres d'un groupe. Pour les perfos, on ne peut pas envoyer un OCDS par
paramètre reçu.
Ok je comprends.
Mais peut-être que c'est tout simplement à toi de savoir ce que tu as
déjà mis dans ton OCDS et l'envoyer quand ce dernier est complet.
Plus précisemment, quand tu a construit ta request_sample
tu sais que tu as demandé n symboles.
TSP t'aura répondu en indiquant combien ta requête va générer de
groupes (à calculer à partir de ta liste de sample Mise à jour disons p) et
également combien de symboles contiennent chacun
des groupes (toujours à calculer et que tu stockes dans un tableau
disons group_size[p])
Comme tu sais que TSP t'enverra
- les groupes dans l'ordre
- les symboles dans l'ordre de chaque groupe
ton alog de read est simple:
current_group = 0;
current_group_size = group_size[current_group];
while (!finished_sampling) {
retcode = TSP_consumer_read_sample(...,&new_sample);
if (TSP_STATUS_OK != retcode) {
/* ATTENTION ERREUR TSP: pb reseau, provider mort etc... */
}
if (!new_sample) {
tsp_usleep(duree_calibree);
} else {
current_group_size--;
if (0==current_group_size) {
/* action car groupe complet */
/// envoi ODS
/* on passe au groupe suivant */
current_group = ((current_group+1)%nb_group);
current_group_size = group_size[current_group];
}
}
}
Si je ne peux pas me fier au new_sample=0, comment puis_je faire si mon
provider a un pb et ne me fournit pas tous les params d'un groupe. Je risque de
rester bloqué dans ma boucle de lecture.
Pourquoi rester bloquer?
Le pb est "uniquement" de savoir que tu as reçu ce que tu attends non ?
Utiliser un time-out ?
C'est un autre débat.
D'un point de vue de TSP rien ne devrait être en mesure de te bloquer
sauf un pb réseau ou un plantage du provider.
Et encore tu ne devrais pas être bloqué mais recevoir une erreur en retour
du TSP_consumer_read_sample.
La liste semble ré-accepter mesmessages donc je cc la liste.
--
Erk
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: RE : [Tsp-devel] Question "fin de cycle",
Eric Noulard <=