2

私は、アプリケーションの顧客が他のさまざまな API を介してアプリケーションにデータをインポートするための laravel プロジェクトに取り組んでいます。

インポートする必要があるデータの種類ごとにジョブを作成することを考えています。しかし、それは多くの顧客がキュー ワーカーによって処理される必要があるジョブを発行することを意味します。つまり、顧客が特定の種類のデータをインポートする 1 つのジョブをインポートするジョブを発行した場合、別の顧客もジョブを発行した場合です。同じ種類のデータをインポートするには、最初の顧客のジョブが完了するのを待たなければならず、キューが機能することによって 2 番目の顧客のジョブが開始されます。しかし、100 人の顧客がお互いに待っているわけにはいきません。

では、この種の輸入の実行可能な解決策は何でしょうか? ハッシュ化されたキューにジョブを配置してから、それらのキューを呼び出す必要がありますか? または、これを処理するより良い方法があります。データが顧客によってさまざまな API から非同期的にインポートされているようなアプリケーションで作業したことのある人はいますか? そして、それをうまく処理する方法。

4

1 に答える 1

0

正しい方向を指しています。Laravel のようなキュー ワーカーが必要ですが、非同期ドライバーを選択する必要があります。組み込みドライバーを使用するか、RabbitMQなどの独自のキュー サーバーをインストールしてみてください。Laravel 5 用のRabbitMQドライバーを含む素敵なパッケージを次に示します。

https://github.com/vladimir-yuldashev/laravel-queue-rabbitmq

これにより、すべての顧客の要求が非同期キューに入れられ、それぞれのスレッドが個別になります。これらのキュー システムは非常に効率的に機能し、一種の非同期 PHP と言えます。PHPコード内でより非同期にするために、Async Request(およびアプリケーションのPHPコード/サーバー側からの完全なサービス)を提供するGuzzle HTTPパッケージを使用できます。

于 2016-09-15T08:54:55.937 に答える