Эффективная вставка больших объемов данных (250 тыс. записей) в Laravel без превышения ограничения времени PHP? (Очередь ⇐ Php
Эффективная вставка больших объемов данных (250 тыс. записей) в Laravel без превышения ограничения времени PHP? (Очередь
Я столкнулся с ошибкой времени выполнения PHP при вставке примерно 250 тысяч записей в базу данных MySQL с помощью Laravel Eloquent. Я стремлюсь добиться этого без увеличения общего времени выполнения, учитывая следующие ограничения:
[*]Внешний интерфейс: Angular [*]Мультиарендность: реализовано с помощью https://tenancyforlaravel.com/ [*]Попытки решения: очередь Laravel
Ниже мой код.
Код файла задания -
Класс MedicineData реализует MustQueue { используйте Dispatchable, InteractsWithQueue, Queueable, SerializesModels, Batchable; общедоступные $данные; публичная функция __construct($data) { $this->данные = $данные; } публичная функция handle(): void { foreach ($this->data as $key => $value) { $medicine = новое MedicineName(); $medicine->name = $value['name']; $медицина->сохранить(); } } } Код файла контроллера
$chunks = array_chunk($data, 500); $batch = Bus::batch([])->dispatch(); foreach ($куски как $key => $value) { $batch->add(new MedicineData($value)); } Я получаю сообщение об ошибке «Максимальное время выполнения PHP». Как это решить.
Я столкнулся с ошибкой времени выполнения PHP при вставке примерно 250 тысяч записей в базу данных MySQL с помощью Laravel Eloquent. Я стремлюсь добиться этого без увеличения общего времени выполнения, учитывая следующие ограничения:
[*]Внешний интерфейс: Angular [*]Мультиарендность: реализовано с помощью https://tenancyforlaravel.com/ [*]Попытки решения: очередь Laravel
Ниже мой код.
Код файла задания -
Класс MedicineData реализует MustQueue { используйте Dispatchable, InteractsWithQueue, Queueable, SerializesModels, Batchable; общедоступные $данные; публичная функция __construct($data) { $this->данные = $данные; } публичная функция handle(): void { foreach ($this->data as $key => $value) { $medicine = новое MedicineName(); $medicine->name = $value['name']; $медицина->сохранить(); } } } Код файла контроллера
$chunks = array_chunk($data, 500); $batch = Bus::batch([])->dispatch(); foreach ($куски как $key => $value) { $batch->add(new MedicineData($value)); } Я получаю сообщение об ошибке «Максимальное время выполнения PHP». Как это решить.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Анализ больших объемов данных JSON с несколькими различными типами объектов
Anonymous » » в форуме Python - 0 Ответы
- 16 Просмотры
-
Последнее сообщение Anonymous
-