Je me demande s'il existe un moyen d'utiliser des tâches planifiées avec SQL Azure? Chaque aide est appréciée. Le point est, que je veux courir une déclaration simple et simple de ligne tous les jours et voudrait empêcher mettre en place un rôle de travailleur.Tâches planifiées avec Sql Azure?
Répondre
Il n'y a pas d'équivalent SQL Agent pour SQL Azure aujourd'hui. Vous devez appeler votre instruction sur une seule ligne à partir d'une tâche en arrière-plan. Toutefois, si vous possédez déjà un rôle Web, vous pouvez facilement générer un thread pour gérer cela dans votre rôle Web sans avoir à créer de rôle de travail. J'ai blogué sur le concept here. Pour générer un thread, vous pouvez le faire dans le gestionnaire d'événement OnStart() (où l'instance de rôle n'est pas encore ajoutée à l'équilibreur de charge) ou dans la méthode Run() (où l'instance de rôle a été ajoutée au chargement) balancier). Habituellement, c'est une bonne idée de faire l'installation dans OnStart(). Une mise en garde peut ne pas être évidente, que vous exécutiez cet appel dans son propre rôle de travail ou dans un thread d'arrière-plan d'un rôle Web existant: Si vous étendez votre rôle à, disons, deux instances, vous devez vous assurer que l'appel quotidien se produit uniquement à partir de l'une des instances (sinon vous pourriez vous retrouver avec des doublons ou une opération potentiellement coûteuse exécutée plusieurs fois). Il existe quelques techniques que vous pouvez utiliser pour éviter cela, comme un verrou de ligne de table ou un bail de blob Azure Storage. Avec le premier, vous pouvez utiliser cette ligne pour stocker l'horodatage de la dernière fois que l'opération a été exécutée. Si vous acquérez le verrou, vous pouvez vérifier si l'opération s'est produite dans une fenêtre de temps définie (peut-être une heure?) Pour décider si l'une des autres instances l'a déjà exécutée. Si vous ne parvenez pas à acquérir le verrou, vous pouvez supposer qu'une autre instance a le verrou et exécute la commande. Il existe d'autres techniques - ce n'est qu'une idée.
Cela semble interessant. – BitKFu
hmmm. mais j'ai seulement un rôle de service de WCF en place. Le rôle de service WCF peut-il être surchargé? – BitKFu
Le terme «rôle» est synonyme de «modèle de machine virtuelle». Tous les rôles Windows Azure correspondent à Windows Server 2008 SP2 ou Windows Server 2008 R2. Et, comme un rôle Web et un rôle de travailleur, le rôle Web WCF a OnStart() et Run(). Vous pouvez exécuter vos tâches d'arrière-plan dans l'un d'eux. –
En plus de la réponse de David, si vous avez beaucoup de tâches planifiées à faire alors il pourrait être intéressant de regarder:
- lokad.cloud - qui a une bonne gestion des tâches périodiques - http://lokadcloud.codeplex.com/
- quartz.net - ce qui est une bonne solution d'ordonnancement tous azimuts - http://quartznet.sourceforge.net/
(Vous pouvez utiliser quartz.net dans le fil que David a mentionné, mais lokad.cloud nécessiterait un changement d'architecture légèrement plus grand)
+1 pour les frameworks d'ordonnancement préconstruits. L'option Lokad fait partie d'un ensemble de solutions plus vaste pour la création d'applications Windows Azure, et si tout ce dont vous avez besoin est la planification, la solution quartz.net semble être la meilleure solution. –
J'espère que c'est acceptable de parler de votre propre entreprise. Nous avons un service basé sur le web qui vous permet de faire cela. Vous pouvez cliquer sur ce lien pour voir plus de détails sur la façon de schedule execution of SQL Azure queries.
J'ai essayé cette solution, c'est génial! – ryancrawcour
Pour résoudre le problème des rôles multiples exécutant la même tâche, vous pouvez vérifier l'ID de l'instance de rôle et vous assurer que seule la première instance exécutera la tâche.
using Microsoft.WindowsAzure.ServiceRuntime;
String g = RoleEnvironment.CurrentRoleInstance.Id;
if (!g.EndsWith("0"))
{
return;
}
- 1. Tâches planifiées dans Sql Agent
- 2. ASP.NET: Tâches planifiées
- 3. Tâches planifiées dans Jetty
- 4. Parse.com: plusieurs tâches planifiées
- 5. Java: Tâches planifiées
- 6. Tâches planifiées pour ASP.NET
- 7. Création de tâches planifiées
- 8. coldfusion tâches planifiées iis permission
- 9. Php Tâches planifiées prédéfinies Cron?
- 10. Tâches planifiées en file d'attente
- 11. Vérifier l'intégrité des tâches planifiées?
- 12. arrêter TOUTES les tâches planifiées
- 13. Les tâches planifiées en DDD
- 14. Plesk Tâches planifiées - Exécuter plusieurs scripts vs plusieurs tâches
- 15. Façons d'effectuer des tâches planifiées - Windows/.NET
- 16. coldfusion cfhttp poster depuis les tâches planifiées
- 17. Tâches planifiées dans Django sans céleri?
- 18. Zend_Auth, Zend_Acl et Cron Jobs/Tâches planifiées
- 19. Emplacement approprié pour les tâches planifiées
- 20. Tâches planifiées/plugin sur CRM 4.0
- 21. Tâches planifiées (cronjob-aternative) avec le framework Zend?
- 22. Mise en attente de tâches planifiées avec ScheduledThreadPoolExecutor
- 23. Exécution des tâches planifiées Spring avec le thread exécuteur de tâches
- 24. Alternative pratique pour les tâches planifiées de Windows (petit magasin)
- 25. WP8 - Agent de tâches planifiées pour les notifications push
- 26. Ajouter et modifier des tâches planifiées via l'application winform C#
- 27. Méthodes d'attribution de tâches planifiées C# dans un assembly .NET
- 28. Tâches automatisées SQL Azure - Guide pas à pas
- 29. Alternatives à VBScript pour l'exécution des tâches planifiées
- 30. Les tâches GAE planifiées pour l'exécution backend retournant l'erreur 405
Je voudrais aller à http://www.mygreatwindowsazureidea.com/ et voter pour cette fonctionnalité! – ryancrawcour