Php 大规模卷曲
我必须做到以下几点: 我设置了一个守护进程,每小时执行一次nohup命令(通过调用exec('nohup sms.php…'),sms.php通过一个用户数据库,同时向每个用户发送一条sms消息。它通过联系(通过curl)第三方消息服务来实现 因此,sms.php的结构如下:Php 大规模卷曲,php,mysql,curl,Php,Mysql,Curl,我必须做到以下几点: 我设置了一个守护进程,每小时执行一次nohup命令(通过调用exec('nohup sms.php…'),sms.php通过一个用户数据库,同时向每个用户发送一条sms消息。它通过联系(通过curl)第三方消息服务来实现 因此,sms.php的结构如下: $sql = 'SELECT * FROM users'. $q = execute sql query while($r = ....) { // url is the url to the third part
$sql = 'SELECT * FROM users'.
$q = execute sql query
while($r = ....)
{
// url is the url to the third party service that handles sending sms
$ch = curl_init($url);
call curl functions
$data = curl_exec();
}
基本上,我希望sms.php能够处理同时向1000多个用户发送短信的问题,因此用户应该同时收到短信
如何改进代码以允许:
-同时向所有用户发送短信
-处理超过1000个用户(这意味着每个用户发送sms消息不会花费很长时间,而且apache或PHP不能阻止我发送这么多)
编辑:我不想使用外部API。只使用curl函数。谢谢
编辑:第三方服务器提供了一个url,我们必须使用CURL来访问该url以发送SMS消息。您可以使用像ActiveMq这样的专业队列服务器(它有)
您可以轻松地增加负责发送消息的进程的数量。我不知道第三方服务是如何工作的,
因此,在一个API调用中发送多条SMS可能没有选择 使用。
我认为不可能同时发出1000个请求,
但是100~200个请求应该没有问题 您可以在代码级别执行检查, 在同一循环中,
执行
$cnt++
,当
$cnt=100时,
执行多重卷曲,
重置$cnt
,
重复这个过程直到循环结束。我不明白,第三部分(y)消息服务
不是API?那么它看起来像什么?