2010-11-18 30 views
0

Je dois ajouter une notification d'événement dans le calendrier de mes utilisateurs disposant tous d'un compte Google Apps. Le nombre de mes utilisateurs est maintenant de 200 mais il passera à 1500. Comment puis-je ajouter via PHP à partir de Google Calendar API toutes ces notifications? L'objectif secondaire est que tous les utilisateurs qui ont la configuration mobile reçoivent également la notification sms. Mon problème est que si je lance maintenant un script pour ajouter 200 notifications à un événement qui commence dans 5 minutes, cela prendra beaucoup de temps, donc certains utilisateurs ne reçoivent pas à temps la notification.Comment ajouter un grand nombre de rappel de notification d'événement via l'API Google Calendar en utilisant PHP?

merci d'avance!

Alberto

Répondre

3

En bref, la propagation du grand ensemble de requêtes en plus petit ensemble de la demande.
La plupart des serveurs de nos jours sont multi-core, il devrait capable d'effectuer multitâches

Configuration deux scripts

scripts Master

  1. chercher l'événement qui commencent à 5 minutes
  2. Trouver tous les utilisateurs & les détails qui doivent être notifiés (supposer est 200)
  3. pour toutes les 10 notifcations, lancer un processus shell_exec que l'appel script de notification, et assurez-vous pousser la remise en arrière-plan (voir php execute a background process)

script notification

  • reçoivent les détails de 10 utilisateurs doivent être notifiés (entrée de détails à partir de scripts de maître)
  • processus
  • la notification

Be nefits

Ainsi, au lieu de traditionnel chercher un utilisateur avertir un utilisateur,
vous avez besoin 200 x 1 = 200 seconds

Maintenant, vous avez juste besoin

1 seconds for master + (10 x 1 seconds) = 12 seconds

choses à prendre note

Serveur & les ressources de bande passante ne sont pas illimité,
il y a un plafonnée sur le nombre de processus serveur peut exécuter simultanément,
ce à vous d'effectuer des tests et affiner

+0

Salut! J'ai fait ce que tu m'as suggéré. Mais il faut plus de seconde qu'avant. J'écris le script comme ça. Mais l'exécution du script attend tout le exec(); donc ça ne fait pas le php en arrière-plan.Foreach ($ tests as $ test) { exec ("test php.php". $ Test ["id"]); } qu'est-ce que je fais mal? merci d'avance! – albertopriore

+0

vous devriez pousser le 'exec' en arrière-plan - http://stackoverflow.com/questions/45953/php-execute-a-background-process – ajreal

+0

désolé mais je continue à ne pas comprendre exactement ce que je dois faire pour pousser exec en arrière-plan. Laquelle de ces réponses dans http://stackoverflow.com/questions/45953/php-execute-a-background-process est correcte? – albertopriore