Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Vb.Net]Invio Email Asincrono

    Salve, voglio realizzare un sistema di invio email in modo asincrono senza che la pagina aspnet resti in attesa: ho iniziato ad utilizzare ThreadPool.QueueUserWorkItem e le email vengono processate in background. Adesso però ho la necessità di inviare le email senza però, se viene aggiunto un'altro ThreadPool al processo, che vengano eseguite in parallelo ma solo dopo aver terminato il precedente e successivamente fare in modo di stopparlo ogni tot email e riprendere i processi in coda il giorno successivo. Siccome sono agli inizi dell'utilizzo dei Thread volevo chiedervi se intanto è una cosa possibile, se devo continuare a usare il ThreadPool o devo usare un'altro sistema. Potete indicarmi la strada? ^^ grazie

  2. #2
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    si, si puo fare.
    a grandi linee:
    Organizza il lavoro in modo da far partire i thread sequenzialmente a blocchi di tot email.
    Crea una classe di stato, che conservi i dati riguardanti il numero di email inviate, rimanenti ecc.; da salvare in Application o Session o in una qualsiasi altra location atta allo scopo (il db è un buon candidato se vuoi permettere di riprendere il lavoro il giorno dopo).
    Crea un servizio (un generic handler è piu che sufficiente) che legga questo oggetto e restituisca il risultato in xml, testo ecc..
    Nella pagina aspx attraverso javascript a intervalli regolari chiama il servizio, aggiorna la pagina con i dati restituiti e metti a disposizione un pulsante di stop il quale andrà a scrivere un flag nella classe di stato che indicherà al sistema di invio mail di fermarsi al prossimo blocco e salvare tutto nel db in modo da poter essere ripreso successivamente.
    alla ripartenza prima di ripartire da zero carica la classe di stato dal db.

  3. #3
    ci avevo pensato anche io a questa soluzione, però ho anche pensato che se uso javascript vuol dire che se nessuno apre la pagina il giorno dopo l'invio nn avverrà...secondo te esiste un modo per creare un processo, qualcosa che venga eseguito in background senza che lo richiami via js?

  4. #4
    Utente di HTML.it L'avatar di rsdpzed
    Registrato dal
    Aug 2001
    Messaggi
    764
    non con asp.net.

    se hai accesso al server e puoi installarci un servizio windows allora il lavoro puoi farlo fare al servizio.

  5. #5
    ok proverò allora a creare un servizio e aspnet a questo punto screverà dei record in sql così da poter gestire tutto. Speravo di poter fare tutto in aspnet. Grazie tante per la risposta...

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.