Task Scheduling in Asp.NET

Programmiamo l’invio automatico di e-mail ad intervalli di tempo regolari

Spesso abbiamo l’esigenza di pianificare nelle nostre applicazioni web task automatici che compiano svariate operazioni, tra queste una tra le più importanti è l’invio automatizzato di e-mail. L’esigenza potrebbe nascere, per esempio, dal voler fare un check sul database per ricordare agli iscritti la scadenza del loro account oppure per inviare regolarmente mail promozionali.
A tale proposito vediamo come creare uno strumento di schedulazione nella nostra applicazione web.

Primi passi

Come sappiamo l’IIS sul nostro server è in continua esecuzione quindi useremo a nostro vantaggio questa sua caratteristica per pianificare il nostro task. Per prima cosa se non è già stato creato aggiungiamo al progetto il file Global.asax e importiamo la classe System.Timers

  1. <%@ Application Language="VB" %>
  2. <%@ Import Namespace="System.Timers">

Il codice in Visual Basic

Adesso andiamo ad inserire il codice vero e proprio per ottenere la schedulazione

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
  1.     Dim myTimer As New System.Timers.Timer()
  2.     'tempo di intervallo di 5 secondi.
  3.     myTimer.Interval = 5000
  4.     myTimer.AutoReset = True
  5.     AddHandler myTimer.Elapsed, New ElapsedEventHandler(AddressOf myTimer_Elapsed)
  6.     myTimer.Enabled = True
  7. End Sub
  8.  
  9. Public Sub myTimer_Elapsed(source As Object, e As System.Timers.ElapsedEventArgs)
  10.     Dim objTemporizzaMail As New TemporizzaMail()
  11.     objTemporizzaMail.SpedisciMail()
  12. End Sub

Ultimo passaggio per ottenere la nostra applicazione è creare un file di classe all’interno della cartella  App_Code

Imports System
  1. Imports System.Data
  2. Imports System.Configuration
  3. Imports System.Web
  4. Imports System.Web.Security
  5. Imports System.Web.UI
  6. Imports System.Web.UI.HtmlControls
  7. Imports System.Web.UI.WebControls
  8. Imports System.Web.UI.WebControls.WebParts
  9.  
  10. Public Class TemporizzaMail
  11.     Public Sub New()
  12.     End Sub
  13.  
  14.     Public Sub SpedisciMail()
  15.         ' scrivi qui il tuo codice d'invio mail.
  16.     End Sub
  17. End Class

Conclusione

Come si vede il codice è molto semplice ma potente. Possiamo, oltre che programmare l’invio di mail, fare tutto quello che vogliamo come scheduling. Ora tocca a voi cercare, in base alle vostre esigenze di dare libero sfogo alla vostra creatività e utilizzare quest’articolo al meglio.

Post Correlati

Comments (1)

Remarkable things here. I am very satisfied to look your
article. Thank you so much and I am taking a look ahead to
touch you. Will you please drop me a mail?

Leave a comment

12 − nove =