Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 大规模卷曲_Php_Mysql_Curl - Fatal编程技术网

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

我必须做到以下几点:

我设置了一个守护进程,每小时执行一次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 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这样的专业队列服务器(它有)

  • 一个进程将电话号码从数据库推送到队列
  • 您运行多个进程,从数据库轮询一个数字并发送SMS

  • 您可以轻松地增加负责发送消息的进程的数量。

    我不知道第三方服务是如何工作的,
    因此,在一个API调用中发送多条SMS可能没有选择

    使用。
    我认为不可能同时发出1000个请求,
    但是100~200个请求应该没有问题

    您可以在代码级别执行检查, 在同一循环中,
    执行
    $cnt++

    $cnt=100时,
    执行多重卷曲,
    重置
    $cnt

    重复这个过程直到循环结束。

    我不明白,
    第三部分(y)消息服务
    不是API?那么它看起来像什么?