2017-08-07 4 views
-1

Je veux avoir une méthode qui vérifie la table dans la base de données Azure toutes les 5 minutes sans condition, donc c'est juste une tâche planifiée qui s'exécute toutes les 5 minutes indépendamment de quoi que ce soit.Application console, service Windows ou service Web permettant de lire la base de données SQL Azure toutes les 5 minutes?

Je ne sais pas quel est le meilleur modèle d'application que je devrais utiliser pour cela, je choisis entre l'application Console, le service Windows, le service Web ou autre chose.

S'il vous plaît laissez-moi savoir qui fera le mieux le travail et sera plus facile pour la planification.

+0

Il suffit d'être tâche en cours toutes les 5 minutes, ou il a effet spécifique après le check? – raichiks

+0

Cela devrait également fonctionner dans Azure SQL (non testé) - https://github.com/christiandelbianco/monitor-table-change-with-sqltabledependency. C'est une bien meilleure approche que de piquer aveuglément la base de données. Faites le travail avec Azure Functions ou WebJobs. – evilSnobu

+0

En fait, il devrait continuer à vérifier la file d'attente Azure toutes les 5 minutes, sans déclenchement ou condition d'arrêt, il va juste vérifier la file toutes les 5 minutes et quand il y a un nouveau message, il devrait appeler une autre méthode. – GeekGirl

Répondre

1

Le meilleur serait ConsoleApplication.

Si vous voulez l'exécuter à partir de votre ordinateur, lancez-le. Si vous souhaitez l'exécuter dans Azure, utilisez Azure Web Jobs.

enter image description here

Créer AppServie dans Azure, puis sélectionnez cette lame sur la page AppService et suivez les instructions. Ces travaux Web peuvent exécuter des applications ConsoleApplications régulières à partir d'Azure. L'application peut faire ce qu'ils veulent.

+0

Dois-je simplement créer le projet en mode "Release", copier le fichier .exe quelque part et planifier une tâche ou Azure WebJob pour exécuter ce fichier exe? – GeekGirl

+0

Libérer ou déboguer, cela n'a pas d'importance. Azure ne sait pas ce que c'est. Le fichier exe et d'autres choses comme dlls, app.config, etc seront pris en compte dans le cadre du processus de déploiement. –

2

Si vous souhaitez exécuter un élément dans le cloud, envisagez d'utiliser une application Azure Logic. Vous voudrez probablement vérifier la base de données et ensuite prendre une action basée sur le résultat de votre requête. Avec les applications logiques, vous pouvez implémenter un flux de travail à l'aide du concepteur. Il nécessite un codage minimal puisque plusieurs connecteurs sont déjà disponibles dès la sortie de la boîte. De plus, vous êtes facturé uniquement pour l'heure de calcul au cours de laquelle l'application est exécutée. Si vous avez une logique améliorée à exécuter, vous pouvez envisager d'écrire une fonction Azure et l'appeler à partir de l'application Logic.

Vous dites que vous souhaitez vérifier périodiquement une file d'attente et effectuer une action si un message existe. Vous avez 2 options

  1. Azure function qui se déclenche chaque fois qu'un nouveau message arrive dans la file d'attente. Il serait moins coûteux et plus facile d'appeler Azure à chaque fois qu'un message arrive dans la file d'attente plutôt que d'interroger continuellement la file d'attente toutes les 5 minutes et de rechercher un message. QueueTrigger

  2. Logic App qui décrit le flux de travail. Ici, vous pouvez facilement configurer la file d'attente à interroger, effectuer des vérifications sur le message et utiliser des connecteurs existants pour accéder facilement à la table SQL lorsque vos conditions sont remplies.

Logic App

+0

Ces options semblent très intéressantes, mais pouvez-vous s'il vous plaît me dire quel est l'avantage d'utiliser ceux qui utilisent WebJobs? Aussi, ma logique est que chaque fois qu'un nouveau message est ajouté à la file d'attente, je dois démarrer un thread différent toutes les 2 minutes pendant 6 heures pour continuer à vérifier les valeurs dans la base de données SQL Azure. – GeekGirl