0
私は5550レコードの異なるルートを持っているので、各レコードに対してforeachループを実行してAPIデータを取得する必要があります。 は、だから私はLaravelにがつがつ食うと機能を作った:私はGoogleマップから距離データをロードしてデータベースに保存する必要があります
public function getDirectionDistance($origins, $distinations)
{
$client = new Client();
$res = $client->get("https://maps.googleapis.com/maps/api/distancematrix/json?origins=$origins&destinations=$distinations&key=ччч")->getBody()->getContents();
$obj = json_decode($res, true);
$distance = $obj['rows'][0]['elements'][0]['distance']['text'];
$clean = $string = str_replace(' km', '', $distance);
return $clean;
}
私は店の方法
public function store()
{
$route = $this->route->with('from','to')->get();
$maps = new Maps();
foreach ($route as $item){
$direction = new Direction();
$from = $item->from->name;
$to = $item->to->name;
$direction->route_id = $item->id;
$direction->distance = $maps->getMapsApi("$from,israel","$to,israel");
$direction->save();
sleep(3);
}
}
でそれを使用しかし、私はそれを行うとき、私は200本のルートの1人の距離を取得し、200行の後私は次のルートの次の距離を取得します。停止し、APIが完了するのを待って、それを保存し、次の行を開始する方法。機械学習の価格計算機を作成するためのデータが必要です。私はこのように仕事のために
何をしますか?一度に5500のレコードをすべて保存しますか? – Vikash
はい、route_idで距離を保存し、ルートの関係を作成します。 –
chunckでデータを分割してすべてのデータを一度に保存することができます。小さなchunckで分割して保存します – Vikash