我有一个端点,我可以向它发送GET请求,它会根据限制和偏移返回不同的结果。
https://example-foo-bar.com?l=100&o=0 // returns the first 100 items.
我想创建一个for循环(或者我假设是嵌套的for循环),一次返回100个元素,每次将结果添加到一个数组中,直到响应结束。我有发送curl请求和存储结果的代码,只是在批处理部分有点困难。
比如:
https://example-foo-bar.com?l=100&o=0
https://example-foo-bar.com?l=100&o=99
https://example-foo-bar.com?l=100&o=199
https://example-foo-bar.com?l=100&o=218 // end of response ?
我还知道总共有多少个结果,存储为$count;
我最终得到了这样的结果,但这并不像是最佳实践:
function testLoop(){
$limit = 100;
$count = getCount();
$j = ceil($count/$limit);
for ($i = 0; $i < $j; $i++){
$offset = $i*100;
echo 'https://example-foo-bar?l='.$limit.'&o='.$offset.'';
}
}
testLoop();
3条答案
按热度按时间wkftcu5l1#
我不知道我是否正确理解了这个问题。但是你是在找这样的东西吗?
然后使用cron作业调用php文件
wfauudbj2#
1.创建表“schedule”并存储数据id、link_name、offset和status列
1.将cron设置为每10分钟执行一次,并获取第一个状态=0的条目
1.将参数传递给testLoop($limit)调用函数。它可以像这样只完成offset =0,offset =99,offset =199的链接
1.完成后,更新计划表中的状态=1。
mqkwyuun3#
对于这种类型的批处理,使用Cron的最好方法是使用php-resque