1

我正在一个 PHP 网站上工作,当用户选择城市并提交表单时,它将从数据库中获取该特定城市的用户电话号码并向他们发送短信。

我在 while 循环中使用了 cURL 函数来执行它,它工作正常。

注意:我的短信网关提供商的 API 一次只支持每个 http 请求一个号码。

现在我的问题是,如果所选城市的用户数超过 10000 或 50000,那么使用 cURL 方法将需要很长时间才能执行,因为它在循环中?但是用户不会喜欢等待循环完成。有没有比这样做更好的方法,比如当用户提交请求时,后端的某些东西(如作业)将执行该功能,即使用户关闭页面,该作业也会执行直到它完成循环。

4

2 回答 2

0

您可以将 sms 和 city 的详细信息存储在另一个表中,而不是设置一个 Cron,该 Cron 从 City 详细信息和 Send To Sms Gateway 的基础中获取所有 Number,将该行设置为已发送。

于 2013-10-17T11:57:55.190 回答
0

我的解决方案是这样的:

--page /sendsms/?phone_nr=1122 向电话号码 1122 发送一条短信

--page /sendbulk 有一个循环在 php 中调用页面 /sendsms/?phone_nr=1122 和文件函数 file(' http://www.domain.com//sendsms/?phone_nr= ' . $phone_nr[$i ]);

--提交的客户端将使用ajax调用(不需要返回)页面/sendbulk

这样,即使客户端关闭连接,服务器也会继续在后台运行 /sendbulk 并发送所有消息

于 2013-10-17T12:10:37.143 回答