我不能谈太多细节,因为这是一个工作项目,但无论如何..
我正在用 PHP 编写一个 SOAP 客户端,它将所有响应推送到 MySQL 数据库。我的主脚本发出一个初始soap 请求,该请求检索大量项目(目前大约有4000 个,但预计该列表在某个时候会增长到数十万个)。
一旦返回了 4000 个项目的列表,我使用 exec("/usr/bin/php path/to/my/historyScript.php &") 为每个项目发送历史请求。Web 服务 api 最多支持 30 个请求/秒。下面是我目前正在做的一些伪代码:
$count = 0;
foreach( $items as $item )
{
if ( $count == 30 )
{
sleep(1); // Sleep for one second before calling the next 30 requests
$count = 0;
}
exec('/usr/bin/php path/to/history/script.php &');
$count++;
}
我遇到的问题是我不确定进程何时完成并且我的开发服务器开始崩溃。由于预计数据会增长,我知道这对我的问题来说是一个非常糟糕的解决方案。
对于这样的任务,我应该考虑使用更好的方法吗?我只是觉得这更像是一个“黑客”