2009-10-12 10 views
0

Je construis une application web dans asp.net MVC et je réfléchis à la façon dont je peux obtenir certains tests conditionnels régulièrement.Avec une application Web, comment déclencher des tâches telles que les notifications, les changements d'état, les tâches répétitives générales et les contrôles

Je suis actuellement l'intention d'avoir une page telle que/utilité/runJobs qui ont une fonction dans ce qui permettra de tester l'ensemble du site pour les dates qui remplissent certaines conditions, etc ..

Je puis déclencher cette page de un service ou un autre service de déclenchement.

Je l'exécuterais probablement toutes les min min. De nouvelles notifications devaient être envoyées, ou un élément de journal devait être écrit, ou un statut mis à jour.

Quelqu'un peut-il suggérer une meilleure façon de le faire.

EDIT___________

Imaginez comment les e-mails de notification pour ebay sont envoyés?

Je suppose que les badges sur la pile sur le flux sont testés lorsqu'un utilisateur vient sur le site, et seulement pour cet utilisateur.

Répondre

1

Si vous envisagez d'écrire un service pour déclencher vos travaux, je vous suggère d'exécuter vos travaux dans votre service. Avec MVC, vous avez probablement déjà séparé votre logique de vos vues, il devrait donc être facile de mettre en œuvre le service.

+0

Cela semble bien, merci. Mais y a-t-il une meilleure façon de faire cela que de simplement déclencher une fonction chaque minute, une sorte de liaison d'événement ou quelque chose? –

+0

Les tâches liées à une action utilisateur ne sont pas des tâches "vraiment". Il suffit de les exécuter. Si cela a pris trop de temps, mettez-les en file d'attente. Une recherche dans une table de base de données de travail ne coûte pas beaucoup. Idem pour les travaux récurrents. Une recherche "what's todo next" n'est pas chère (avec un bon design de base de données) – Arthur

0

Première grande protip: ce que vous cherchez ne devrait pas nécessiter une seule page web. Ou, ce que vous devez vraiment penser ici est les services, les applications en ligne de commande et la mise en file d'attente, ne pas avoir une page qui est frappée une fois par minute.