


Comment réaliser l'envoi de lots asynchrones des messages SMS en arrière-plan en cliquant sur les boutons dans la réception?
Apr 01, 2025 am 09:57 AMLe bouton de la réception déclenche l'arrière-plan Asynchronous Batch SMS Envoi: La clé pour optimiser l'expérience utilisateur
Les applications Web modernes se concentrent sur l'expérience utilisateur, en particulier pour les opérations longues telles que l'envoi par lots de SMS. Cet article présente comment retourner l'invite de réussite immédiatement après avoir cliqué sur le bouton au premier plan, tandis que le backend effectue une requête de base de données, une écriture redis et des taches d'envoi de SMS de manière asynchrone.
étapes de mise en ?uvre:
Demande AJAX frontale: l'utilisateur clique sur le bouton "Envoyer SMS" et utilise Ajax pour envoyer une demande à l'arrière-plan. La demande AJAX permet au premier plan d'obtenir une réponse immédiatement sans attendre le traitement d'arrière-plan.
L'arrière-plan renvoie immédiatement la réponse: Une fois que l'arrière-plan a re?u la demande AJAX, il renvoie immédiatement la réponse au format JSON, telles que
{"success": true, "message": "短信發(fā)送請(qǐng)求已接收"}
pour informer la réception que la demande a été soumise avec succès.Traitement des données backend et cache Redis: l'arrière-plan obtient l'ID de modèle SMS, la liste des numéros de téléphone mobile et le contenu SMS, écrit ces données dans le cache Redis, améliore la vitesse d'accès aux données et prend en charge le traitement distribué.
SMS asynchrones Tache Envoi: l'arrière-plan démarre une tache asynchrone (comme l'utilisation d'une file d'attente ou d'une tache de synchronisation), lit les données de Redis et appelle l'API du fournisseur de services SMS pour envoyer des messages SMS. Les messages d'erreur doivent être enregistrés dans le journal pour un dépannage ultérieur plus facile.
Exemple de code (PHP):
L'exemple de code suivant montre les étapes de base qui doivent être ajustées en fonction de l'environnement réel et de l'API du fournisseur de services SMS.
Réception (javascript):
$ .ajax ({ URL: ?/ send-sms?, Type: ?Post?, Données: {template_id: 123, mobiles: ['13800138000', '13800138001'], contenu: 'Tester SMS'}, Succès: fonction (réponse) { if (réponse.success) { alerte (réponse.Message); } autre { alert ('Send a échoué:' Response.Message); } }, Erreur: fonction (xhr, statut, erreur) { alert ('Send a échoué:' erreur); } });
Backend (PHP):
Php // Méthode du contr?leur de fond Fonction publique Sendsms () { $ templateId = $ _post ['template_id']; $ mobiles = $ _post ['mobiles']; $ content = $ _post ['contenu']; // Renvoie la réponse réussie Echo Echo JSON_ENCODE (['Success' => true, 'Message' => 'Sms Send Demande re?ue']); // Traitement des taches asynchrones (en utilisant des files d'attente ou d'autres mécanismes asynchrones) $ this-> DispatchSmstask ($ templateID, $ mobiles, $ contenu); } // SMS asynchrone envoie une tache (exemple, doit être modifié en fonction de la situation réelle) Fonction privée DispatchSmstask ($ templateId, $ mobiles, $ contenu) { // utilise la file d'attente redis ou autre file d'attente de messages $ redis = new redis (); $ redis-> connect ('127.0.0.1', 6379); $ redis-> lpush ('sms_queue', json_encode (['template_id' => $ templateId, 'mobiles' => $ mobiles, 'contenu' => $ contenu])); // Démarrez le processus des travailleurs pour traiter la file d'attente (besoin de mettre en ?uvre la logique des travailleurs vous-même) // ... } // Le processus du travailleur gère l'envoi des SMS (exemple, doit être modifié en fonction de la situation réelle) // ... Obtenez des taches de la file d'attente Redis, appelez l'API SMS pour envoyer des sms, enregistrer des journaux ... ?>
Cet exemple utilise Redis comme file d'attente de messages et doit implémenter le processus de travail vous-même pour consommer des taches dans la file d'attente et envoyer des SMS. Dans les applications pratiques, une gestion des erreurs plus robuste, des mécanismes de réessayer et des fonctions de surveillance peuvent être nécessaires. Le choix du bon cadre de traitement des taches asynchrones (tels que RabbitMQ, BeanStalkd ou PHP intégrés de fonctions asynchrones) simplifiera le développement et améliorera la fiabilité. Assurez-vous d'écrire des SMS envoyant une logique en fonction du document API du fournisseur de services SMS.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Pour développer une application Web Python complète, suivez ces étapes: 1. Choisissez le cadre approprié, tel que Django ou Flask. 2. Intégrez les bases de données et utilisez des orms tels que Sqlalchemy. 3. Concevez le frontal et utilisez Vue ou React. 4. Effectuez le test, utilisez Pytest ou Unittest. 5. Déployer les applications, utiliser Docker et des plates-formes telles que Heroku ou AWS. Grace à ces étapes, des applications Web puissantes et efficaces peuvent être construites.

éviter l'injection de SQL dans PHP peut être effectué par: 1. Utilisez des requêtes paramétrées (préparation), comme indiqué dans l'exemple PDO. 2. Utilisez des bibliothèques ORM, telles que la doctrine ou éloquente, pour gérer automatiquement l'injection SQL. 3. Vérifiez et filtrez l'entrée de l'utilisateur pour éviter d'autres types d'attaque.

Le problème brouillé en chinois java est principalement causé par un codage de caractère incohérent. La méthode de réparation comprend la cohérence du codage du système et la gestion correcte de la conversion de codage. 1. Utilisez UTF-8 Encodage uniformément des fichiers aux bases de données et programmes. 2. Spécifiez clairement le codage lors de la lecture du fichier, tel que l'utilisation de BufferedReader et InputStreamReader. 3. Définissez le jeu de caractères de la base de données, tel que MySQL à l'aide de l'instruction AlterDatabase. 4. Définissez le type de contenu sur Text / HTML; charset = UTF-8 dans les demandes et réponses HTTP. 5. Faites attention à l'encodage des compétences de cohérence, de conversion et de débogage pour assurer le traitement correct des données.

Pour une bonne raison, BlockDag se concentre sur les intérêts des acheteurs. Blockdag a recueilli 265 millions de dollars étonnants en 28 lots de ses préventes à l'approche de 2025, les investisseurs accumulent régulièrement des projets crypto-potentiels. Qu'il s'agisse de pièces de pré-vente à faible co?t qui offrent beaucoup d'avantages ou d'un réseau de bleu qui se prépare aux mises à niveau critiques, ce moment fournit un point d'entrée unique. De l'évolutivité rapide à l'architecture modulaire flexible modulaire, ces quatre noms exceptionnels ont attiré l'attention sur tout le marché. Les analystes et les premiers adoptants surveillent attentivement, les appelant les meilleures pièces de monnaie cryptographiques pour acheter des gains à court terme et une valeur à long terme maintenant. 1. Blockdag (BDAG): 7 jours à faire

Linux System restreint les ressources utilisateur via la commande UliMIT pour éviter une utilisation excessive des ressources. 1.Ulimit est une commande shell intégrée qui peut limiter le nombre de descripteurs de fichiers (-n), la taille de la mémoire (-v), le nombre de threads (-u), etc., qui sont divisés en limite douce (valeur effective actuelle) et limite dure (limite supérieure maximale). 2. Utilisez directement la commande ulimit pour une modification temporaire, telle que Ulimit-N2048, mais elle n'est valable que pour la session en cours. 3. Pour un effet permanent, vous devez modifier /etc/security/limits.conf et les fichiers de configuration PAM, et ajouter SessionRequiredPam_limits.so. 4. Le service SystemD doit définir Lim dans le fichier unitaire

La logique d'authentification de l'utilisateur Laravel personnalisé peut être implémentée via les étapes suivantes: 1. Ajoutez des conditions de vérification supplémentaires lors de la connexion, telles que la vérification des bo?tes aux lettres. 2. Créez une classe de garde personnalisée et développez le processus d'authentification. La logique d'authentification personnalisée nécessite une compréhension approfondie du système d'authentification de Laravel et prêter attention à la sécurité, aux performances et à la maintenance.

Le travailleur de service implémente la mise en cache hors ligne en interceptant les demandes de réseau et en fournissant des ressources pré-cache. Les étapes spécifiques incluent: 1) Enregistrer le travailleur-service et vérifier la prise en charge du navigateur; 2) Définir les politiques de cache et les ressources pré-cache dans le fichier SW.JS; 3) Ressources pré-cache à l'aide de l'événement d'installation et décidez d'obtenir des ressources à partir du cache ou du réseau dans l'événement Fetch; 4) Faites attention au contr?le des versions, aux compétences de sélection et de débogage des politiques de cache; 5) Optimiser la taille du cache, traiter le contenu dynamique et assurer que les scripts sont chargés via HTTPS.

Le déploiement et le réglage de Jenkins sur Debian est un processus impliquant plusieurs étapes, notamment l'installation, la configuration, la gestion du plug-in et l'optimisation des performances. Voici un guide détaillé pour vous aider à réaliser un déploiement efficace de Jenkins. Installation de Jenkins en premier, assurez-vous que votre système a un environnement Java installé. Jenkins nécessite un environnement d'exécution Java (JRE) pour fonctionner correctement. SudoaptupDaSudoaptininstallOpenjdk-11-JDK vérifie que l'installation de Java est réussie: Java-Version Suivant, Ajouter J
