[Risolto][Python] Pianificare attività in base a orario

Linguaggi di programmazione: php, perl, python, C, bash, ecc.

[Risolto][Python] Pianificare attività in base a orario

Messaggioda vaeVictis » lunedì 7 gennaio 2019, 21:20

Ciao a tutti.

Sto scrivendo un programma in Python.

Una parte del programma consiste in un "timer". Per timer intendo che in un file/database ho una serie di "record" che, tra gli altri valori, contengono anche una data con ora.

Ciò che devo fare è una lettura di questo file (e fin qui ci siamo), immagazzinare da qualche parte l'ora e far partire una "routine" a quella determinata ora.

Non posso usare servizi esterni a Python.
Voi come procedereste?

Graaaaaaarrrrrrrrzie in anticipo.
:ciao:
Ultima modifica di vaeVictis il mercoledì 16 gennaio 2019, 11:53, modificato 1 volta in totale.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4114
Iscrizione: luglio 2012
Desktop: Gnome
Distribuzione: Ubuntu/Lubuntu 18.04.1 64bit

Re: [Python] Pianificare attività in base a orario

Messaggioda Eresia » lunedì 7 gennaio 2019, 21:46

https://github.com/dbader/schedule questo potrebbe fare a caso tuo
Avatar utente
Eresia
Scoppiettante Seguace
Scoppiettante Seguace
 
Messaggi: 310
Iscrizione: giugno 2006
Distribuzione: Solus
Sesso: Maschile

Re: [Python] Pianificare attività in base a orario

Messaggioda vaeVictis » lunedì 7 gennaio 2019, 21:51

Credo di sì, grazie :)
E' tra le alternative (l'unica per ora) che avevo visto con la ricerca.
Attendo di capire se esistono alternative "native" e in caso la questione è risolta.
Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4114
Iscrizione: luglio 2012
Desktop: Gnome
Distribuzione: Ubuntu/Lubuntu 18.04.1 64bit

Re: [Python] Pianificare attività in base a orario

Messaggioda melfnt » martedì 8 gennaio 2019, 23:00

Di nativo c'è sched.

Secondo me è un po' meglio di schedule perché aspetta direttamente fino all'orario del prossimo job invece di controllare ogni secondo se ci sono task da eseguire (direi che schedule fa "attesa attiva" anche se il termine è molto sbagliato). Spero di essermi spiegato

Lo dico solo per quello che ho visto dalla documentazione, non ho usato nessuno dei due.
melfnt
Entusiasta Emergente
Entusiasta Emergente
 
Messaggi: 1292
Iscrizione: ottobre 2011

Re: [Python] Pianificare attività in base a orario

Messaggioda vaeVictis » lunedì 14 gennaio 2019, 12:41

Vi aggiorno.

Al momento penso di aver risolto usando il modulo sched. C'era anche più documentazione online.
Ecco il codice per lanciare un semplice job di stampa a un determinato orario di un dato giorno.
(C'è un commento dove si imposta la data, poi forse aggiungerò argparse ma intanto volevo lasciare il codice)

Codice: Seleziona tutto
import sched
import time


def print_event(name, start):
    now = time.time()
    elapsed = int(now - start)
    print('EVENT: {} elapsed={} name={}'.format(
        time.ctime(now), elapsed, name))

if __name__ == '__main__':
    scheduler = sched.scheduler(time.time, time.sleep)
    start = time.time()
    print('START:', time.ctime(start))
    data = "2019 1 14 11:41"                  # <--- CAMBIARE LA DATA E L'ORA CON QUELLA DESIDERATA
    delay = time.mktime(time.strptime(data, '%Y %m %d %H:%M')) - time.time()
    scheduler.enter(delay, 1, print_event, ('second', start))
    scheduler.run()

Pirates arrrrrrrrrrr awesome!!!
«I fear not the man who has practiced 10000 kicks once, but I fear the man who has practiced one kick 10000 times.»
Avatar utente
vaeVictis
Imperturbabile Insigne
Imperturbabile Insigne
 
Messaggi: 4114
Iscrizione: luglio 2012
Desktop: Gnome
Distribuzione: Ubuntu/Lubuntu 18.04.1 64bit


Torna a Programmazione

Chi c’è in linea

Visualizzano questa sezione: 0 utenti registrati e 3 ospiti