timer in webapp server side

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