Laravel-excel: Mengapa antrian ekspor membutuhkan banyak waktu?

Dibuat pada 2 Jul 2020  ·  7Komentar  ·  Sumber: Maatwebsite/Laravel-Excel

Prasyarat

Versi

  • Versi PHP:7.1.3
  • Versi Laravel:5.8
  • Versi paket:3.1

Deskripsi

Saya telah menggunakan paket ini lebih dari setahun sekarang. Baru-baru ini saya mulai mengalami masalah dengan memori dan kinerja. Pengguna mencoba mengunduh banyak data; beberapa kali data historis. Jadi saya membaca dokumen dan menemukan bagian antrian. Awalnya, ini adalah solusi yang tepat. Dengan ekspor antrian, beberapa pekerjaan dikirim untuk menghasilkan file dengan potongan. Tapi saya melihat sesuatu. Setiap pekerjaan (AppendQueryToSheet) yang dikirim membutuhkan lebih banyak waktu untuk diselesaikan daripada yang terakhir. Dan pekerjaan terakhir (CloseSheet) membutuhkan lebih banyak waktu untuk menyelesaikannya.

Pertanyaan saya adalah: ¿apakah ini cara kerja ekspor antrian? ¿Atau apakah saya melewatkan sesuatu?

informasi tambahan

Saya menggunakan Redis dan Horizon. Bahkan saya mencoba dengan banyak pekerja tetapi tampaknya setiap pekerjaan selesai, pekerjaan baru dikirim. Jadi, itu tidak menyelesaikan masalah saya.

Saya melampirkan gambar ini sehingga Anda dapat melihat waktu terdaftar.

Selection_007

question

Komentar yang paling membantu

Setiap kueri harus membuka kembali file spreadsheet yang membutuhkan waktu PhpSpreadsheet, jadi memang semakin lama setiap penambahan.

Saya punya beberapa perubahan yang direncanakan untuk 3.2 yang akan meningkatkan ini.

Semua 7 komentar

Setiap kueri harus membuka kembali file spreadsheet yang membutuhkan waktu PhpSpreadsheet, jadi memang semakin lama setiap penambahan.

Saya punya beberapa perubahan yang direncanakan untuk 3.2 yang akan meningkatkan ini.

Saya mengalami masalah yang sama di sini. Ukuran filenya juga tidak besar, hanya 5-10mb. Saya tidak mengalami lonjakan apa pun dalam penggunaan CPU atau Memori.

Saya memutuskan untuk membangun layanan dengan python dan panda dan itu meningkat pesat, dan maksud saya BANYAK. Laravel Excel adalah perpustakaan yang sangat baik tetapi saya kira untuk pekerjaan ini mungkin itu bukan alat yang tepat

@ okmkey45 Agar adil, ini sebenarnya bukan kesalahan Laravel Excel, ini bergantung pada PHPSpreadsheet yang merupakan pustaka yang tidak efisien untuk membaca / menulis file. Ini memalukan karena abstraksi seputar kueri chunking dan pekerjaan antrian sangat berguna di sini, dan menghemat banyak waktu saya menulis layanan di Go / Python dan menghubungkannya dengan antrian saya.

Ada beberapa alternatif untuk PHPSpreadsheet yang jauh lebih cepat pada file besar, mungkin mereka dapat ditukar ketika kita menggunakan ->queue atau ShouldQueue ?

@aakarim itu sebenarnya sesuatu yang saya pertimbangkan, tetapi saat ini tidak punya waktu atau kasus penggunaan untuk mengimplementasikan ini. Saya akan terbuka untuk PR asalkan tetap sederhana dan ikut serta.

Saya akan mengadakan pesta setelah tenggat waktu ini. Apakah ada paket yang Anda sukai / rekomendasikan @patrickbrouwers? https://github.com/box/spout sepertinya tempat yang baik untuk memulai.

@aakarim ya kotak / cerat. Saya bahkan telah mempertimbangkan untuk memungkinkan penggunaan league / csv jika Anda hanya ingin csv, sejauh ini pilihan tercepat untuk impor / ekspor massal besar.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat