Newsgroup: it.comp.programmare
Titolo: cron/at o qualcosaltro ?

Ciao,
per poter attivare/disattivare a tempo  alcuni scenari di domotica avrei la necessita' di memorizzarli
in un database e poi periodicamente eseguirli , un po' come fa cron/at ma possibilmente
utilizzando il db che con il linguaggio sql mi semplificherebbe la gestione.
 
Tra queste ipotesi che mi vengono in mente cosa mi consigliereste:
 
qualcosa che ad ogni insert/delete/update rigeneri il crontab da zero.
 
una linea del crontab che chiami esplicitamente una funzione che esegua (con la stessa sintassi del cron)
le linee di comandi memorizzate nella tabella (applicando le periodicita' specificate  dalla tabella)
 
uno script/processo esplicito che ogni 60 secondi lanci i comandi memorizzati nella tabella (verificando le periodicita').
 
Esiste qualcosa di gia fatto ?
 
 
 
Giulia
 

 CUT
 
io metterei un record in tabella con informazioni riguardanti periodicità e ultimo lancio eseguito.
Un processo sarà in pool sulla tabella e verificherà se il task in questione deve essere lanciato o meno.
La logica del task puoi memorizzarla sia all'interno del db sia all'interno del programma (nell'ultimo caso solo se logica predeterminata).
 


poll non pool


Non ho capito benissimo, ma praticamente qualsiasi DBMS ha applicativi da
linea di comando (quindi richiamabili via script) per eseguire query.
Fai uno script e mettilo in cron.
 
No? :/
 
Ciao!

 Fai uno script e mettilo in cron.
 
No, non sono le query ad essere eseguite a tempi determinati.
Immagina che io  invece di avere un file di testo (crontab),
voglia avere una tabella sql identica in tutto e per tutto al file di testo come campi(minuti ore giorni mesi comando ecc ecc) e righe,
ora che meccanismo metteresti in moto per tenere conto delle manipolazioni
(che possono essere generate da un interfaccia web a pulsanti, come da altri processi)?
 
Il mio dubbio e' se comunque utilizzare cron/at e quindi non aggiungere nessun altro processo,
o crearmi un "cronsql" tutto mio che usi come configurazione quella tabella invece del file e quindi ad esempio riscrivere tutta la logica
di periodicita'.
 
 
Giulia
 

 
 
Ti direi che stai affrontando il problema in maniera molto strana.
 
- Metti sul db una tabella "cosafare"/"data-ora".
- Scrivi uno script che quando gira fa query sulla tabella, fa girare
la roba scaduta, cancella/aggiorna la tabella e fa log.
- Metti lo script in cron ogni tot (ogni minuto/cinque minuti/vedi te).
 
Ciao!

 - Metti lo script in cron ogni tot (ogni minuto/cinque minuti/vedi te).
 
Quindi la ipotesi che avevo messo come secondo punto nel post originale , e mi dovro' riscrivere la logica di periodicita' di cron/at (oppure capire se la posso 
estrarre dal sorgente di  cron stesso).
 
Grazie
Giulia
 
 

 capire se la posso estrarre dal sorgente di  cron stesso).
 
La logica di periodicità??? O_O
Credo che ti stai complicando la vita inutilmente.
 
Qual'è, esattamente, il problema nel mandare uno script in esecuzione da 
cron ogni X minuti, che legga la tabella SQL e faccia quello che c'è da 
fare? I processi nei sistemi Unix sono molto leggeri, costa poco 
avviarne uno.
 


Rileggi quello che ti ho scritto, evidentemente non hai capito.
 
Quello che vuoi fare è una cosa estremamente semplice, si farà in una decina
di righe di bash script.
 
Ciao!