[PIPython] Eseguire una operazione a intervalli di tempo.

Giovanni B. Lenoci gianiaz76
Ven 19 Nov 2004 15:16:44 CET


Ho capito male o questo modulo permette di decidere solo quando eseguire 
una operazione?
Mi spiego meglio, con questo modulo io posso dire di eseguire una 
determinata operazione fra X secondi.
Ma in questo modo mi ritrovo al punto di partenza.

Lo script che vorrei fare dovrebbe essere una specie di demone che 
carico all'avvio, e che a intervalli di tempo, prende ad esempio i 
valori dell'interfaccia /proc/net/dev oppure dei valori della cpu, in 
modo che poi possa elaborarli e farne dei grafici.
E' una cosa fattibile? (credo di si)
ma con questo modulo?

grazie per le risposte precedenti e future, ciao



Nicola Paolucci wrote:

> ciao Giovanni,
>
> Giovanni B. Lenoci wrote:
>
>> Ciao, vorrei prendere dei valori dai files presenti nei file 
>> contenuti nella dir /proc/ a intervalli di tempo.
>> Lasciando stare il chron di sistema mi chiedevo qual'era il metodo 
>> migliore per eseguire un operazione a intervalli regolari.
>>
>> La prima prova che ho fatto č stato memorizzare il valore del time 
>> all'inizio dello script.
>>
>> inizio=time.time()
>>
>> e poi ho incluso il tutto in un while infinito
>>
>>
>> while 1:
>>       print int(time.time()-inizio)
>>
>> cosi ottengo effetivamente i secondi che passano, ma ottengo anche la 
>> barretta della CPU rossa!
>> era ovvio che questo non fosse l'approccio giusto.
>>
>> Sapete darmi qualche dritta su quale modulo usare e come?
>> Datemi anche solo uno spunto, poi cercherņ di sbrigarmela da solo :-)
>>
> Dai un'occhiata al modulo sched della libreria standard:
>
> *class scheduler*(     timefunc, delayfunc)
>
>    The scheduler class defines a generic interface to scheduling
>    events. It needs two functions to actually deal with the ``outside
>    world'' -- timefunc should be callable without arguments, and return
>    a number (the ``time'', in any units whatsoever). The delayfunc
>    function should be callable with one argument, compatible with the
>    output of timefunc, and should delay that many time units. delayfunc
>    will also be called with the argument |0| after each event is run to
>    allow other threads an opportunity to run in multi-threaded
>    applications.
> Example:
>
>>>> import sched, time
>>>> s=sched.scheduler(time.time, time.sleep)
>>>> def print_time(): print "From print_time", time.time()
>>>
> ...
>
>>>> def print_some_times():
>>>
> ...     print time.time()
> ...     s.enter(5, 1, print_time, ())
> ...     s.enter(10, 1, print_time, ())
> ...     s.run()
> ...     print time.time()
> ...
>
>>>> print_some_times()
>>>
> 930343690.257
>
>> From print_time 930343695.274
>> From print_time 930343700.273
>
> 930343700.276
>
> ciao,
>    Nick
> _______________________________________________
> Python mailing list
> Python a lists.python.it
> http://lists.zope.it/cgi-bin/mailman/listinfo/python
>




More information about the Python mailing list