php批量發送短信或郵件的方案


最近遇到在開發中遇到一個場景,后台管理員批量審核用戶時候,需要給用戶發送審核通過信息,有人可能會想到用foreach循環發送,一般的短信接口都有調用頻率,循環發送,肯定會導致部分信息發送失敗,有人說用sleep()睡一會兒,這樣也不行,如果遇到用戶多的情況肯定會導致php執行超時,樓主參考網上方案,有2種解決方案,第一種是用隊列,比較常用的有rabbitMQ,這一個跨多語言的消息隊列實現,功能很強大,具體可以百度,由於這個場景算小,不打算用rabbitMQ,還有一種方案,就是用Linux任務計划,crond,

1,在linux中crond是由crontab管理的,在終端中輸入crontab -e 可以新建一個任務,任務的格式是: * * * * * [執行的腳本]

2, 各個*號代表 分 時 日 月 周 ,比如我需要沒半個小時執行一個操作: */30 * * * * curl http://域名/控制器/操作,還可以指定范圍內 : 0,30 7-22 * * * curl http://域名/控制器/操作表示每天的7點到10中間每半個小時執行一次操作

3,首先將每次的審核用戶id存入一個queue表中,表中有用戶對應的電話號碼,

4,然后寫一個發送操作,每次取出5條,

5,然后開啟一個定時計划,來執行這個操作,新建完任務后,service crond restart 重啟計划,然后service crond status可以看到正處在運行的任務


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM