Question

Quelles sont les différentes approches pour la création de tâches planifiées pour les applications web, avec ou sans web/de l'application de bureau?

Était-ce utile?

La solution

Si nous parlons de la plateforme de Microsoft, alors j'avais toujours développer une fenêtre séparée de Service pour gérer ces tâches par batch.

Vous pouvez toujours référence à la même assemblys qui sont utilisés par votre application web pour éviter toute mauvaise duplication de code.

Autres conseils

Jeff discuté de cela sur le Dépassement de Pile blog - http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

Fondamentalement, Jeff a proposé d'utiliser le CacheItemRemovedCallback comme un compte à rebours de l'appel de certaines tâches.

Personnellement, je crois que l'automatisation des tâches doit être manipulé comme un service, une tâche planifiée de Windows, ou une offre d'emploi en SQL Server.

Sous Linux, la caisse cron.

Je pense que le Débordement de Pile est lui-même à l'aide d'un ApplicationCache expiration à exécuter en arrière-plan code à intervalles réguliers.

Si vous êtes sur un hôte Linux, vous aurez presque certainement être à l'aide de cron.

Sous linux, vous pouvez utiliser des tâches cron (http://www.unixgeeks.org/security/newbie/unix/cron-1.html) pour planifier des tâches.

Utilisez URL fetchers comme wget ou curl pour faire des requêtes HTTP GET.

Sécuriser votre Url avec l'authentification afin que nul ne peut exécuter les tâches sans la connaissance de l'utilisateur/mot de passe.

Je pense que Windows intégré dans le Planificateur de Tâches est l'outil pour ce travail.Qui implique un usage à l'extérieur.

Cela peut ou peut ne pas être ce que vous cherchez, mais la lecture de cet article, "Simuler un Service Windows à l'aide de ASP.NET pour exécuter des tâches planifiées".Je pense que StackOverflow peut utiliser cette méthode ou il a au moins la possibilité de l'utiliser.

Une méthode très simple que nous avons utilisé, où je travaille, est-ce:

  1. Configurer un service web/web méthode qui exécute la tâche.Ce webservice peut être sécurisé avec identifiant/pass si vous le souhaitez.
  2. Créer une application console qui appelle ce service web.Si vous le souhaitez, vous pouvez avoir l'application de console envoyer des paramètres et/ou d'obtenir une sorte de métriques pour la sortie de la console ou externes à l'exploitation forestière.
  3. Calendrier ce fichier exécutable dans le planificateur de tâches de choix.

C'est pas joli, mais il est simple et fiable.Depuis l'application de console est essentiellement juste un battement de coeur à dire l'application pour aller faire son travail, il n'a pas besoin de partager toutes les bibliothèques avec l'application.Un autre avantage de cette méthodologie est qu'il est assez trivial de lancer manuellement en cas de besoin.

Utilisez URL fetchers comme wget ou curl pour faire des requêtes HTTP GET.

Sécuriser votre Url avec l'authentification afin que nul ne peut exécuter les tâches sans la connaissance de l'utilisateur/mot de passe.

Vous pouvez aussi dire cron pour exécuter des scripts php directement, par exemple.Et vous pouvez définir les autorisations sur le fichier PHP pour empêcher d'autres personnes d'accéder ou, mieux encore, de ne pas avoir ces utilitaire de scripts dans un répertoire accessible...

Java et Printemps -- Utilisation d'un quartz.Très agréable et fiable -- http://static.springframework.org/spring/docs/1.2.x/reference/scheduling.html

Je pense qu'il y a des façons plus faciles que d'utiliser cron (Linux) ou le Planificateur de Tâches (Windows).Vous pouvez l'intégrer dans votre application web à l'aide de:(a) planificateur quartz,

ou si vous ne voulez pas intégrer une autre 3ème partie de la bibliothèque dans votre application:(b) créer un thread sur startup qui utilise le standard Java " java.util.Timer " de la classe à exécuter vos tâches.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top