ciao a tutti,
ho creato una specie di B2B con xojo web integrato ad un ERP aziendale (zucchetti)
quello che mi serve che a determinati orari, impostati in configurazione, venga eseguito un import da files csv nel db mysql associato alla web app.
Sto cercando di capire se la classe webtimer possa fare il lavoro, poich credo di aver inteso che funziona client side, ma il job deve essere eseguito dal server, anche senza alcuna sessione aperta o utente loggato (visti gli orari, soprattutto di notte)
mi date una dritta?
grazie,
ciro
Possono esserci diverse soluzione, dipende da come hai realizzato l’app e dal tipo di server
La classe webtimer non quella che ti serve
ciao Antonio,
la mia app installata come exe e non come cgi su virtual machine winxp pro ed sempre in esecuzione.
ho bisogno che a due orari prestabiliti venga eseguito l’import di questi files csv (non c’ nessun utente che deve avviare il job)
una schedulazione
come mi suggerisci di procedere?
grazie, ciao
ciro
Hai diversi metodi:
Uno potrebbe essere un cron (magari il comando AT su win se non erro) che richiama una pagina (specialUrl) della tua app
Oppure:
All’avvio dell’app avvii anche un timer con frequenza lenta, ad ogni action controlli l’ora e se nel range di quando deve eseguire il task lo fai eseguire, magari con un xojo.core.timer.callLater in modo da uscire direttamente dal ciclo del timer
Ad esempio:
Aggiungi all’app una propriet schedulerTimer as Timer
All’evento open dell’app aggiungi
schedulerTimer=new Timer
addHandler schedulerTimer.action, weakAddressOf scheduler
schedulerTimer.period=60000 (1 volta al minuto)
schedulerTimer.mode=timer.multiple
Dove scheduler
sub scheduler(t as timer)
dim d as new date
select case d.hour
case 10,20 //Poniamo di voler lanciare l'operazione alle 10:00 e alle 20:00
if d.minute=0 then //qui magari verifica le approssimazione temporali per evitare di saltare le chiamate o chiamare due volte
xojo.core.Timer.callLater 0, myOperation
end if
end sub
Dove myOperation la tua operazione
ma la sub scheduler va nell’evento action del timer?
No un metodo della app che fai chiamare dal timer, che crei, tramite l’addHandler
Qui trovi le informazioni che ti servono e qui il programma open source
Una volta installato, programmi l’esecuzione del tuo programma, che far l’import e poi terminer.
ciao