Problème
J'ai un formulaire qui, lorsqu'il est soumis, va exécuter le code de base pour traiter les informations présentées et les insérer dans une base de données pour l'affichage sur un site web notification. En plus, j'ai une liste de personnes qui ont signé jusqu'à recevoir ces notifications par e-mail et SMS. Cette liste est trivial comme le moment (seulement en poussant environ 150), mais il suffit à la cause qu'il faut plus d'une minute pour parcourir l'ensemble de la table d'abonnés et d'envoyer 150+ e-mails. (Les e-mails sont envoyés individuellement comme demandé par les administrateurs du système de notre serveur de courrier électronique en raison de la masse des politiques de messagerie.)
Pendant ce temps, la personne qui a publié l'alerte va s'asseoir sur la dernière page du formulaire de près d'une minute sans le renforcement positif que leur avis est posté. Cela conduit à d'autres problèmes potentiels, tous les possibles solutions que je ressens sont moins qu'idéales.
Tout d'abord, l'affiche pourrait penser que le serveur est à la traîne et cliquez sur le bouton "Soumettre" à nouveau, provoquant le script de recommencer ou exécuté deux fois. J'ai pu résoudre ce problème en utilisant JavaScript pour désactiver le bouton et remplacer le texte-à-dire comme quelque chose de " Processing...", cependant ce n'est pas l'idéal, car l'utilisateur sera toujours bloqué sur la page de la durée de l'exécution du script. (Aussi, si JavaScript est désactivé, ce problème existe toujours.)
Deuxièmement, l'affiche peut fermer l'onglet ou le navigateur prématurément après la soumission du formulaire. Le script va garder en cours d'exécution sur le serveur jusqu'à ce qu'il tente d'écrire au navigateur, cependant, si l'utilisateur accède à une page au sein de notre domaine (alors que le script est encore en cours d'exécution), le navigateur se bloque au chargement de la page jusqu'à ce que le script est terminé. (Cela n'arrive que lorsqu'un onglet ou la fenêtre du navigateur est fermé et non la totalité de l'application de navigateur.) Toujours, ce n'est pas l'idéal.
(Possible) De La Solution
J'ai décidé, je veux sortir de la "e-mail" partie du script dans un fichier séparé, je peux appeler après que l'avis a été posté. J'ai d'abord pensé à mettre cela sur la page de confirmation après la notification a bien été posté. Toutefois, l'utilisateur ne saura pas ce script est en cours d'exécution et les éventuelles anomalies ne sera pas évident pour eux; Ce script ne peut pas échouer.
Mais, si je peux utiliser ce script comme un processus d'arrière-plan? Donc, ma question est la suivante: Comment puis-je exécuter un script PHP pour déclencher comme un service d'arrière-plan et l'exécuter de manière complètement indépendante de ce que l'utilisateur a fait au niveau du formulaire?
EDIT: Ce ne peut pas être cron ed. Il doit s'exécuter à l'instant que le formulaire est soumis. Ces sont de haute priorité de notifications. En outre, le système les administrateurs de l'exécution de nos serveurs interdire crons de courir tous les plus fréquemment que 5 minutes.