On Mon, 6 Jan 2025, Lem wrote:
Perdonami, in realtà a me è sembrato parecchio confuso quanto hai scritto,
e non sono in grado di darti una risposta precisa.
Ma a naso suggerisco l'uso di incron per il terzo script.
3) *solo* se* ci sono modifiche, riscrive il file "dati1" aggiornando
i dati (sostituendo quelli precedenti, non accodando).
in realtà sovrascrive comunque, perché tra i dati c'è il tempo in cui i
dati sono stati raccolti. (se il dato è più vecchio di 5 minuti deve
venire ignorato, ma questa sarebbe un anomalia già prevista nellos cript
3)
Il secondo script idem, lavorando col file "dati2".
quindi incrontab partirebbe comunque dopo ogni aggiornamento di file 1.
Script3_Pippo legge i dati da dati1 e da dati2, e fa quel che deve;
oppure (scusa, non ho capito quale sia il caso preciso)
script3 deve venir lanciato per la prima volta a una certa ora (che viene
impostata da script 2 e riportata anche in dati2).
A questo punto applica a tutti i dati (compreso time() corrente) la
funzione f e in base al risultato decide se
eseguire le operazioni presenti nello script, oppure
rilanciare lo script dopo 10 minuti oppure tutte e due le cose oppure
terminare.
La cosa a cui avo pensato è che script2 chiamassa at e gli desse in pasto
script3, poi al momento impostato script 3 parte, e se deve ripetersi
richiama at.
Chiedevo se c'era qualcosa di più elegante.
[per capire come deve funzionare faccio un esempio: script 0 legge i dati
ambientali; script 2 legge i miei piani per la giornata e decide quando
deva svegliarmi, e dice nel file2 anche che tipo di impegno è.
Se l'impegno è "vado a camminare" allora f() sa che se è umido non vado,
quindi se al momento in cui la sveglia dovrebbe suonare la umidità esterna
fosse oltre 85% allora differisce la sveglia fino a quando non si asciuga
un po'; se invece è <85% allora mi sveglia e non riattiva la chiamata una
successiva volta. [se passano le 9:30 suona comunque e non riattiva]
--
Leonardo Boselli