Laravel-excel: キューに入れられたエクスポートに時間がかかるのはなぜですか?

作成日 2020年07月02日  ·  7コメント  ·  ソース: Maatwebsite/Laravel-Excel

前提条件

  • [X]読んで理解した: https
  • [X] Laravel Excelのバージョンがまだサポートされているかどうかを確認しました: https
  • [X]あなたの質問が以前にまだ尋ねられていないことを確認しました。
  • [X]課題テンプレート全体に記入

バージョン

  • PHPバージョン:7.1.3
  • Laravelバージョン:5.8
  • パッケージバージョン:3.1

説明

私はこのパッケージを1年以上使用しています。 最近、私はメモリとパフォーマンスに問題を抱え始めました。 ユーザーは大量のデータをダウンロードしようとしています。 時々歴史的なデータ。 だから私はドキュメントを読んで、キューに入れられたセクションを見つけました。 最初は、それは完璧な解決策でした。 キューに入れられたエクスポートでは、ファイルをチャンクで生成するために複数のジョブがディスパッチされます。 しかし、私は何かに気づきました。 ディスパッチされた各ジョブ(AppendQueryToSheet)は、最後のジョブよりも完了するのに時間がかかりました。 そして、最後の仕事(CloseSheet)は、完了するのにさらに時間がかかりました。

私の質問は次のとおりです。¿これは、キューに入れられたエクスポートが機能する方法ですか? ¿または私は何かが欠けていますか?

追加情報

私はRedisとHorizo​​nを使用しています。 複数のワーカーで試してみましたが、仕事が終わるたびに新しい仕事が出ているようです。 だから、それは私の問題を解決しませんでした。

登録時刻がわかるようにこの画像を添付しました。

Selection_007

question

最も参考になるコメント

すべてのクエリは、PhpSpreadsheetに時間がかかるスプレッドシートファイルを再度開く必要があるため、実際、追加するたびに長くなります。

これを改善するために、3.2でいくつかの変更を計画しています。

全てのコメント7件

すべてのクエリは、PhpSpreadsheetに時間がかかるスプレッドシートファイルを再度開く必要があるため、実際、追加するたびに長くなります。

これを改善するために、3.2でいくつかの変更を計画しています。

ここでも同じ問題が発生しています。 ファイルサイズも大きくはなく、5〜10MBしかありません。 CPUまたはメモリの使用量が急増していません。

私はPythonとパンダを使ってサービスを構築することに決めました、そしてそれは大いに改善されました、そして私はたくさんを意味します。 Laravel Excelは優れたライブラリですが、この仕事にはおそらく適切なツールではないと思います

@ okmkey45公平を

PHPSpreadsheetには、大きなファイルではるかに高速な代替手段がかなりあります。 ->queueまたはShouldQueueを使用すると、それらを入れ替えることができますか?

@aakarimは実際には私が検討していることですが、現在、これを実装するための時間やユースケースはありません。 シンプルでオプトインされている限り、私はPRを受け入れます。

この締め切り後、私はバッシュをします。 @patrickbrouwersが好む/推奨するパッケージはありますか? https://github.com/box/spoutから始めるのが良いようです。

@aakarimはいボックス/注ぎ口。 csvが必要な場合は、league / csvを使用できるようにすることも検討しました。これは、大量の一括インポート/エクスポートで最も高速なオプションです。

このページは役に立ちましたか?
0 / 5 - 0 評価