2013-07-31 1 views
1

J'implémente un service Azure Mobile et j'ai un ensemble d'objets auxquels plusieurs utilisateurs peuvent accéder, potentiellement en même temps. Mon problème est que je ne peux pas vraiment trouver beaucoup d'informations sur la façon de gérer les problèmes de concurrence potentiels qui pourraient en résulter.Gestion des accès concurrents Azure Mobile Service dans SQL?

Je sais que "Azure Tables" implémente une vérification E-Tag. Existe-t-il une solution prête à l'emploi pour Azure Mobile Services pour celui-ci avec SQL? Sinon, quelle est l'approche que je devrais adopter ici? Dois-je simplement implémenter la vérification E-Tag à la main? Je pourrais inclure un GUID de l'objet qui est généré chaque fois que l'objet est enregistré et vérifié lors de l'enregistrement. Cela devrait être une façon relativement sûre de le faire?

Répondre

2

Pour les conflits entre plusieurs clients, vous devez ajouter un mécanisme de détection/résolution. Vous pouvez utiliser un "horodatage" (généralement un numéro de version séquentiellement incrémenté) dans votre schéma de table et le vérifier dans votre script de mise à jour. Vous pouvez échouer une mise à jour si l'horodatage utilisé par un client pour la lecture est plus ancien que l'horodatage en cours.

Si vous souhaitez utiliser ETags via des en-têtes http, vous pouvez utiliser des API personnalisées. Nous cherchons à activer les scripts CRUD pour définir également les en-têtes, mais ce n'est pas disponible aujourd'hui. Séparément, nous examinons également les scénarios hors ligne. (Prog Manager, Services Windows Azure Mobile)

+0

D'accord. Merci!! – Muhwu