我正在开发一个PHP网站,当用户选择城市并提交表单时,它会从该数据库中获取该特定城市的用户电话号码并向他们发送短信。
我在while循环中使用了cURL函数来执行它并且它工作正常。
注意:我的短信网关提供商的API每个http请求一次只支持一个号码。
现在我的问题是,如果所选城市中的用户数量超过10000或50000,那么使用cURL方法将需要很长时间才能执行,因为它在循环中?但用户不喜欢等待循环完成。有没有比这样做更好的方法,例如当用户提交请求时,后端(如job)中的某些内容将执行该功能,即使用户关闭页面,该作业也会执行直到完成循环。
答案 0 :(得分:0)
您可以将sms和city的详细信息存储在另一个表中,而不是设置一个Cron,它根据City详细信息和Send To Sms Gateway获取所有Number,将该行设置为已发送..
答案 1 :(得分:0)
我的解决方案是:
- page / sendsms /?phone_nr = 1122向手机nr 1122发送一条短信
- page / sendbulk有一个循环,用php调用页面/ sendsms /?phone_nr = 1122,带有文件函数文件('http://www.domain.com//sendsms/?phone_nr='。$ phone_nr [$ i]);
- 提交的客户端将使用ajax(不需要返回)调用页面/ sendbulk
这种方式即使客户端关闭连接,服务器也会继续在后台运行/ sendbulk并发送所有消息