Il 25/11/2013 15:05, Davide Moro ha scritto:
Il 25/11/2013 14:49, Yuri ha scritto:
Ciao,

forse mi sono spiegato male. Io, con un crontab, chiamo una mia browser view. Questa browser view chiama un'altro server non gestito da me ma nella stessa rete, per ricavare dei dati. La mia browser view cicla su una lista, di circa 700 elementi, e per ogni valore fa una chiamata. Volevo evitare di sovraccaricare l'altro server in quei pochi minuti, e invece fare una chiamata ogni X secondi in modo da non avere un picco di richieste.

Spero di esser stato più chiaro :-P

Ciao Yuri,

la sleep ci può stare in questo caso.

Il problema è che ho un thread occupato per mezz'ora circa nel fare solo quello, di cui 20 minuti di sleep.


In alcuni casi si può decidere di delegare questo compito direttamente a uno zeo client dedicato, fuori dal bilanciatore.

è la cosa migliore, in effetti. Vado per questa soluzione.


La mia domanda originale è comunque se uno sleep all'interno del codice Plone può creare problemi, mi par di aver capito di no, nel senso che al massimo tiene un thread occupato all'interno del client.

Puoi anche mettere un preambolo nella vista che fa terminare la chiamata con un nulla di fatto se ti accorgi che una richiesta simile è "running", in modo che non ci siano sovrapposizioni. Per tale scopo puoi anche solo controllare se una certa property è true o false o metodo simile.

Quando si parla di operazioni batch piuttosto lunghe consiglio di mettere dei file di log chiari che identifichino bene quando parte una procedura, quando finisce, se ci sono stati errori, un po' per tutto. Ti sarà molto utile nel debugging.

Ciao,

davide


_______________________________________________
Plone-IT mailing list
plone...@lists.plone.org
https://lists.plone.org/mailman/listinfo/plone-plone-it
http://plone-regional-forums.221720.n2.nabble.com/Plone-Italy-f221721.html

Rispondere a