


Bagaimana untuk mencetuskan latar belakang Latar Belakang Menghantar mesej SMS di latar depan tanpa menjejaskan pengalaman pengguna?
Artikel ini memperkenalkan cara untuk membolehkan bahagian depan mencetuskan latar belakang untuk menghantar mesej teks dalam kelompok tanpa menjejaskan pengalaman pengguna. Setelah pengguna mengklik butang, meja depan segera mengembalikan prompt kejayaan, dan meja belakang melakukan pertanyaan pangkalan data, Redis Cache menulis dan SMS menghantar asynchronously.
Idea Teras: Pemprosesan Asynchronous
Penyelesaian ini menggunakan mekanisme pemprosesan tak segerak untuk menggerakkan operasi memakan masa ke latar belakang untuk melaksanakan, mengelakkan menyekat latar depan. Langkah -langkah tertentu adalah seperti berikut:
-
Permintaan AJAX Front-end: Pengguna mengklik butang Hantar, dan bahagian depan menggunakan AJAX untuk menghantar permintaan ke latar belakang. Parameter permintaan termasuk ID templat SMS, senarai nombor telefon bimbit dan kandungan SMS.
$ .ajax ({ URL: '/Send-SMS', Jenis: 'Post', Data: {Template_ID: 123, Mobiles: ['13800138000', '13800138001'], Kandungan: 'Ujian SMS'}, Kejayaan: Fungsi (Response) { Alert ('SMS menghantar permintaan telah dikemukakan'); }, ralat: fungsi (ralat) { Alert ('Permintaan gagal:' error.responsetext); } });
Salin selepas log masuk -
Latar belakang menerima permintaan dan mengembalikan respons: Selepas latar belakang menerima permintaan AJAX, ia segera mengembalikan respons yang berjaya (format JSON) untuk memaklumkan front-end bahawa permintaan telah diterima. Kuncinya ialah logik menghantar SMS dimasukkan ke dalam tugas tak segerak.
// kaedah pengawal latar belakang fungsi awam sendSmsAction () { $ templateId = $ _post ['template_id']; $ mobiles = $ _post ['Mobiles']; $ content = $ _post ['content']; // mengembalikan respons yang berjaya dengan segera echo json_encode (['kejayaan' => benar, 'mesej' => 'permintaan yang diterima, tugas menghantar SMS bermula']); // Tambahkan tugas ke beratur (contohnya menggunakan redis atau rabbitmq) $ this-> addTaskToqueue ($ templateId, $ mobiles, $ content); }
Salin selepas log masuk -
Pemprosesan Tugas Asynchronous: Kaedah
addTaskToQueue
menambah tugas menghantar SMS ke barisan mesej. Proses latar belakang bebas (contohnya, menggunakan pekerja giliran) terus mendengarkan barisan, mengambil tugas dan melaksanakannya.// Tambahkan tugas ke barisan (contoh menggunakan redis) fungsi peribadi addTaskToqueue ($ templateId, $ mobiles, $ content) { $ redis = redis baru (); $ redis-> Connect ('127.0.0.1', 6379); $ redis-> lpush ('sms_queue', json_encode (['template_id' => $ templateid, 'mobiles' => $ mobiles, 'content' => $ content])); }
Salin selepas log masuk -
Pekerja giliran: Pekerja giliran memperoleh tugas dari barisan
sms_queue
, melakukan penghantaran SMS, dan memproses log ralat.// pekerja giliran (contoh) sementara (benar) { $ tugas = $ redis-> rpop ('sms_queue'); jika ($ tugas) { $ data = json_decode ($ tugas, benar); $ result = $ this-> sendsms ($ data ['template_id'], $ data ['mobiles'], $ data ['content']); jika ($ hasil! == benar) { // log error_log ("SMS hantar gagal:". $ Hasil); } } tidur (1); // Elakkan penggunaan CPU yang berlebihan}
Salin selepas log masuk SMS Hantar Fungsi (
sendSms
) : Fungsi ini memanggil API Penyedia Perkhidmatan SMS untuk menghantar mesej SMS.
Melalui langkah-langkah di atas, pengalaman pengguna front-end tidak akan terjejas, dan back-end akan berkesan memproses SMS batch menghantar. Memilih sistem giliran yang betul (redis, rabbitmq, beanstalkd, dan lain -lain) adalah penting, yang memastikan tugas -tugas diproses dengan pasti dan menyokong persekitaran yang diedarkan. Di samping itu, pengendalian kesilapan lengkap dan mekanisme pembalakan juga penting.
Atas ialah kandungan terperinci Bagaimana untuk mencetuskan latar belakang Latar Belakang Menghantar mesej SMS di latar depan tanpa menjejaskan pengalaman pengguna?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Bagaimanakah penyelesaian caching Redis menyedari keperluan senarai kedudukan produk? Semasa proses pembangunan, kita sering perlu menangani keperluan kedudukan, seperti memaparkan ...

VProcesserAzrabotKiveB-disengajakan, мнепришосоаookaнноаяадачейтераце hadapan LeavallysumballanceFriablanceFaumdoptomification, čtookazalovnetakprosto, Kakaožidal.posenesko

Laravel 8 menyediakan pilihan berikut untuk Pengoptimuman Prestasi: Konfigurasi Cache: Gunakan Redis ke Pemacu Cache, Fasad Cache, Pandangan Cache, dan Page Page. Pengoptimuman pangkalan data: Menetapkan pengindeksan, gunakan skop pertanyaan, dan gunakan hubungan fasih. Pengoptimuman JavaScript dan CSS: Gunakan Kawalan Versi, Gabungan dan Secrink Aset, Gunakan CDN. Pengoptimuman kod: Gunakan pakej pemasangan komposer, gunakan fungsi pembantu Laravel, dan ikuti piawaian PSR. Pemantauan dan Analisis: Gunakan Pengakap Laravel, gunakan teleskop, memantau metrik aplikasi.

Dalam springboot, gunakan redis untuk objek OAuth2Authorization Cache OAuth2. Dalam aplikasi Springboot, gunakan SpringsecurityoAuth2Authorizationsererver ...

Redis memainkan peranan penting dalam penyimpanan dan pengurusan data, dan telah menjadi teras aplikasi moden melalui pelbagai struktur data dan mekanisme kegigihannya. 1) REDIS menyokong struktur data seperti rentetan, senarai, koleksi, koleksi yang diperintahkan dan jadual hash, dan sesuai untuk logik perniagaan cache dan kompleks. 2) Melalui dua kaedah ketekunan, RDB dan AOF, Redis memastikan penyimpanan yang boleh dipercayai dan pemulihan data yang cepat.

Kaedah tidak responsif penyemak imbas selepas pelayan WebSocket mengembalikan 401. Apabila menggunakan Netty untuk membangunkan pelayan WebSocket, anda sering menghadapi keperluan untuk mengesahkan token. � ...

Aplikasi Exchange OUYI menyokong memuat turun telefon bimbit Apple, lawati laman web rasmi, klik pilihan "Apple Mobile", dapatkan dan pasang di App Store, daftar atau log masuk untuk menjalankan perdagangan cryptocurrency.

JDBC ...
