Domanda

Quali sono i diversi approcci per la creazione di attività pianificate per applicazioni Web, con o senza un'applicazione Web/desktop separata?

È stato utile?

Soluzione

Se parliamo della piattaforma Microsoft, svilupperò sempre un servizio Windows separato per gestire tali attività batch.

Puoi sempre fare riferimento agli stessi assembly utilizzati dalla tua applicazione web per evitare fastidiose duplicazioni di codice.

Altri suggerimenti

Jeff ne ha parlato sul blog Stack Overflow:http://blog.stackoverflow.com/2008/07/easy- background-tasks-in-aspnet/

Fondamentalmente, Jeff ha proposto di utilizzare CacheItemRemovedCallback come timer per richiamare determinate attività.

Personalmente ritengo che le attività automatizzate dovrebbero essere gestite come un servizio, un'attività pianificata di Windows o un lavoro in SQL Server.

Sotto Linux, controlla cron.

Penso che Stack Overflow stesso utilizzi una scadenza ApplicationCache per eseguire il codice in background a intervalli.

Se utilizzi un host Linux, quasi sicuramente utilizzerai cron.

Sotto Linux puoi usare i lavori cron (http://www.unixgeeks.org/security/newbie/unix/cron-1.html) per pianificare le attività.

Utilizza i recuperatori di URL come wget o curl per effettuare richieste HTTP GET.

Proteggi i tuoi URL con l'autenticazione in modo che nessuno possa eseguire le attività senza conoscere l'utente/password.

Penso che l'Utilità di pianificazione integrata di Windows sia lo strumento suggerito per questo lavoro.Ciò richiede un'applicazione esterna.

Questo potrebbe essere o meno ciò che stai cercando, ma leggi questo articolo, "Simula un servizio Windows utilizzando ASP.NET per eseguire processi pianificati".Penso che StackOverflow possa utilizzare questo metodo o almeno si è parlato del suo utilizzo.

Un metodo molto semplice che abbiamo utilizzato dove lavoro è questo:

  1. Configurare un servizio web/metodo web che esegua l'attività.Se lo si desidera, questo servizio web può essere protetto con nome utente/pass.
  2. Creare un'app console che chiami questo servizio Web.Se lo desideri, puoi fare in modo che l'app console invii parametri e/o recuperi una sorta di metrica per l'output sulla console o la registrazione esterna.
  3. Pianifica questo eseguibile nell'utilità di pianificazione preferita.

Non è carino, ma è semplice e affidabile.Poiché l'app della console è essenzialmente solo un battito cardiaco per dire all'app di svolgere il suo lavoro, non è necessario condividere alcuna libreria con l'applicazione.Un altro vantaggio di questa metodologia è che è abbastanza banale avviare manualmente quando necessario.

Utilizza i recuperatori di URL come wget o curl per effettuare richieste HTTP GET.

Proteggi i tuoi URL con l'autenticazione in modo che nessuno possa eseguire le attività senza conoscere l'utente/password.

Puoi anche dire a cron di eseguire direttamente gli script php, ad esempio.E puoi impostare le autorizzazioni sul file PHP per impedire ad altre persone di accedervi o, meglio ancora, non avere questi script di utilità in una directory accessibile dal web...

Giava e Primavera: usa il quarzo.Molto carino e affidabile... http://static.springframework.org/spring/docs/1.2.x/reference/scheduling.html

Penso che ci siano modi più semplici rispetto all'utilizzo di cron (Linux) o Utilità di pianificazione (Windows).Puoi integrarlo nella tua app Web utilizzando:(a) programmatore al quarzo,

o se non desideri integrare un'altra libreria di terze parti nella tua applicazione:(b) crea un thread all'avvio che utilizza la classe Java standard "java.util.Timer" per eseguire le tue attività.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top