2017-11-07 10 views
0

2つのlaravel 5.2サーバーが稼動していて、お互いに対話してリソースを取得する必要があります。私のサーバー1で私のアプリケーションでは、2つのapisを通信するハングがハングします

が、私はいくつかのデータを返すためにリーグ変圧器を使用しますが、データは私のサーバー2 からリソースを含める必要があり、私は変換関数でがつがつ食うを使用してデータを取得する:

public function transform(MyModel $model) { 

     $client = new Client(); 
     $result = $client->request('GET', 'localhost:8000/api/companies/'.$model->company_id); 
     $company= $result->getBody()->getContents(); 

     $data = [ 
     'id' => (int) $model->id, 
     'name' => $model->name, 
     'status' => $model->status, 
     ]; 

     $data['company'] = json_decode($company); 
     return $data; 
    } 

とき

"data": { 
    "id": 1, 
    "name": "John Doe", 
    "status": "active", 
    "company": { 
     "data": { 
      "id": 1, 
      "name": "My Company", 
     } 
    } 

私はがつがつ食うを使用して、サーバ2から(サーバ1に保存されている)に、mymodelにアクセスする必要がある場合ので、私、私が直面してる問題は、次のとおりです。私はlocalhost:4040/api/models/1 に、このリソースを取得するための要求が、私はこの応答をプレゼント必要会社を取得するために(トランスで)サーバ2に要求を行う

$result = $client->request('GET', 'localhost:4040/api/models/'.$model->_id); 

と、サーバ1人のニーズ:サーバ1に要求を行います。 これにより、クライアントは永遠に待機し、応答は得られません。私は非同期要求を使用しようとしましたが、私は空の応答を得て、私が約束を強制すると、それは永遠にハングします。

答えて

0

あなたのアプリをPHPの統合Webサーバーを使用してローカルに実行しますか?はいの場合、これが問題です。

PHPの統合Webサーバーでは、1つの要求のみを同時に処理できます。あなたは、Apache/nginxの/ ...

上の両方のサーバー1と2を実行するために2

てみサーバにリクエストをするために

と、サーバ1人のニーズにデッドロックの種類を取得します

関連する問題