Un ami et moi aimerions créer un site Web pour manipuler les données Facebook.Azure rôle web PHP, F # rôle de travailleur: développement sur différentes machines
La structure est:
- un rôle Web PHP (contient la page Web, l'utilisateur connexion OAuth, interagit avec les files d'attente, et interagit avec la base de données SQL Azure)
- un rôle de travailleur F # (fait des statistiques et assez lourds extractions de données)
Le processus est (en supposant un nouvel utilisateur):
L'utilisateur arrive sur la page Web et se connecte à Facebook via OAuth, le rôle Web PHP publie ensuite un message dans une file d'attente worktodo avec les informations de connexion et le jeton. Le rôle de travail F # lit le message de la file d'attente worktodo et commence à faire des calculs de données (en utilisant l'API Facebook) et des statistiques, puis il écrit les résultats dans une base de données SQL Azure. Enfin, il envoie un message à la file d'attente Workdone indiquant qu'il a réussi à traiter les données pour l'utilisateur.
Enfin, le rôle Web PHP lit la file d'attente Workdone et remarque que le travail est terminé et affiche les résultats de l'algorithme.
J'ai deux questions:
Y at-il un gros défaut dans cette conception? Quelle est la meilleure façon de collaborer: une personne va écrire le PHP et l'autre le F #, est-il un moyen d'utiliser le stockage de développement à partir de deux machines différentes?
Merci beaucoup! (Excuses si certains trouvent ce truc trop basique, je suis vraiment un débutant dans toutes ces questions).
J'ai un problème avec la façon dont le rôle de travail permet au rôle web de savoir que c'est fait. La chose de file d'attente ne fonctionnera pas à moins qu'il y ait une file d'attente pour chaque utilisateur (autrement beaucoup de messages non liés à l'utilisateur). Je pourrais vérifier la base de données pour voir si elle a été remplie pour l'utilisateur (avec une minuterie), ou je pourrais créer un blob quand le travail est fait et vérifier l'existence de ce blob. Ceux-ci pourraient fonctionner mais semblent un peu artificiels, y a-t-il une meilleure solution? Merci beaucoup! – jlezard
Le rôle Web va-t-il maintenir une connexion tout ce temps? Le modèle typique consiste à faire interroger le client (via AJAX), puis il semble assez naturel que le rôle web interroge à son tour un blob ou une table pour voir si le travail est terminé. – smarx