Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 24
  1. #1

    [VB.NET] Processo che controlla le scadenze periodicamente?

    Salve,
    Io sto sviluppando un'applicazione web. La mia applicazione gestisce uno scadenziario cioè un'agenda delle cose da fare. Ora la domanda che mi pongo è questa, esiste un modo per far si che la mia applicazione o una esterna controlli periodicamente questa tabella dello scadenziario. E in base alla data della scadenza rispetto a quella odierna esegua delle operazioni.
    Sostanzialmente c'e' il modo di fare qualcosa che controlli ciclicamente la data e al superamento di questa esegua delle operazione in background sul database???
    Mi servirebbe un processo che viene eseguito continuamente sul server o qualcosa del genere.
    Vi e' mai capitato di fare qualcosa del genere? e come avete risolto??

    Grazie

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sì ... già capitato e risolto con un servizio (un NT Service per capirci).

  3. #3
    mmmm la tua risposta mi ha svelato un mondo immenso del quale non sapevo nemmeno l'esistenza.
    A questo punto mi chiedo se la mia problematica e più una cosa da servizio o da operazione pianificata?
    Eseguire continuamente il controllo nel database potrebbe risultare pesante se si considera che deve controllare all'incirca la data di un centinaio di record.
    E poi l'immediatezza della risposta non e' cosi essenziale.
    Pero' la soluzione del servizio mi sembra più elegante. Perche' la gestione dell'operazione pianificata ricadrebbe sul client invece il servizio no.
    E' possibile sospendere un servizio per un po di tempo da codice? e successivamente riavviarlo? che ne so 30 minuti un oretta? non vorrei che il controllo del servizio mi impalla il server.
    Spero che comprendiate il mio dubbio.

    Grazie aspetto risposte

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Anche nel server puoi usare Operazioni Pianificate che faccia partire una procedura o uno script ogni tanto, ma un servizio e' piu' elegante, potente, maneggevole (e fra l'altro e' molto semplice con .NET).

    Quello che serviva a me parte una sola volta al giorno, fa i controlli che deve fare e invia un messaggio di posta e un SMS per indicare il risultato dell'elaborazione.

    Naturalmente il servizio gira su un thread apposito che "dorme" per la maggior parte del tempo, senza impegnare minimamente il server. Si puo' "svegliare" una volta ogni (diciamo) ora e fare quello che ti serve.

  5. #5
    Ti vedo ferrato sull'argomento sai darmi qualche link utile a qualche guida che spiega come fare queste cose con i windows service di .net??

  6. #6
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Puoi leggere questi

    Servizi NT con VB.NET (Prima parte)
    http://www.visual-basic.it/articoli/...rvicesNet1.htm

    Servizi NT con VB.NET (Seconda parte)
    http://www.visual-basic.it/articoli/...rvicesNet2.htm

    I servizi NT/2000 e .NET (Prima parte)
    http://www.visual-basic.it/articoli/agNTServ.htm

    I servizi NT/2000 e .NET (Seconda parte)
    http://www.visual-basic.it/articoli/agNTServ2.htm

  7. #7
    Ho seguito un tutorial e' ho creato il mio primo servizio. ora sta nell'elenco dei servizi con lo stato di started ma non lo vedo nel task manager, come mai?? ovviamente ho creato un servizio vuoto per provare. forse visto che non fa nulla non si vede nel task manager?

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Sei sicuro che e' Started ...?

    Puo' darsi che e' crashato ... controlla nel registro degli eventi ... comunque, dovrebbe essere elencato nel Task Manager ...

  9. #9
    ahahah che grasse risate c'e' solo che non aveva il nome che immaginavo io ^_^.
    Ok ora sono pronto per iniziare questa nuova incredibile nuova avventura.
    Ultima domanda, Ricapitalando quando parte mi lancia il metodo Onstart e qui io mettero tutti i miei bei controlli sul database giusto?
    Quando finisco con sti controlli come faccio a dirgli ok ora basta stoppati per un'ora e poi rifai la stessa cosa? Vorrei sapere all'incirca l'istruzione per fare sta cosa.

    E grazie mille per le dritte che mi stai dando

  10. #10
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    No ... non hai letto i documenti che ti ho indicato ... la cosa e' un "pelino" piu' articolata ...

    La procedura OnStart inizia e termina quando il servizio viene avviato ... deve quindi concludersi in tempi brevi.

    Dentro la OnStart, quindi, non ci deve essere il "payload" (ovvero il codice che effettua il lavoro per cui il processo e' previsto). Nella OnStart deve esserci soltanto

    1) l'acquisizione di eventuali parametri di configurazione in input

    2) l'inizializzazione di tutto quello che serve

    3) l'avvio di un nuovo thread (worker thread) in cui il servizio svolgera' il proprio lavoro

    Dopo questi passi, la OnStart deve terminare.

    La OnStop dovra' provvedere ad interrompere il thread avviato dalla OnStart prima di terminare a sua volta.

    Nel worker thread, ci deve essere un loop controllato da una variabile (il cui valore e' modificato nella OnStop per terminare tale loop) in cui viene svolto il lavoro del thread.
    Nel loop va inserito uno Sleep di durata opportuna che "addormenti" il thread per un tempo abbastanza grande.

    Quando il thread viene "risvegliato", vanno effettuati tutti i controlli richiesti.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.