如何通过Guzzle发送批量数据?

时间:2017-05-22 17:32:54

标签: laravel rest guzzle

我正在实现一个需要从我的数据库接收数据的API。数据来自我的产品'表。我组织了我想通过Guzzle发送的产品。

public function post()
    {
      $product = Product::where('erp_status', '=', 1)->limit(5)->offset(0)->get();
        $client = new Client([
            // Base URI is used with relative requests
            'base_uri' => 'http://httpbin.org',
            // You can set any number of default request options.
            'timeout'  => 2.0,
        ]);

在我创建foreach以通过URL发送数据之后。

foreach($product as $prod){
          set_time_limit(0);
          $r = $client->request('POST', 'https://api.mercadolibre.com/items?access_token=XXXXXXXXXXXXXXXXXXX', [
              'json' => [
                  'title' => $prod->description->erp_name,
                  'category_id' => 'MLB46511',
                  'price' => 10,
                  'currency_id' => 'BRL',
                  'available_quantity' => 10,
                  'buying_mode' => 'buy_it_now',
                  'listing_type_id' => 'gold_special',
                  'condition' => 'new',
                  'description' => 'Teste',
                  'pictures' => [
                      ['source' => $prod->image->erp_image]
                  ]
              ]
          ]);
      }
      return view('home');
}

但每次我跑。它返回消息:

cURL error 28: Operation timed out after 2012 milliseconds with 0 out of 0 bytes received (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)

我的变量$ product有5千行。

Guzzle支持这个金额吗?在这种情况下是否可以使用guzzle或什么是纯PHP脚本?

有什么建议吗?

0 个答案:

没有答案