увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Закрыто
Аватара пользователя
xtz4ever
Сообщения: 37
Зарегистрирован: 2016.09.23, 17:11

увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение xtz4ever »

Добрый вечер Уважаемые форумчане. у меня опять небольшой ступор. Я заранее знаю что так поступать плохо, НО мне нужно именно в yii2 изменить вот этот параметр Maximum execution time of 30 seconds exceeded на 120. ресурсы на сервере позволяют, такие запросы будут крайне редко. Все это делается для того, что бы за раз удалить 50 000 записей. вставить такое кол-во не проблема, а вот удалить сложнее. :D

Если у Вас есть альтернатива, с радостью приму ее )) Всех с Рождеством !!!
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение rak »

в чем проблема удалить через консоль? там таких ограничений нету
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение zelenin »

для долгих процессов нужно юзать консоль - там ограничений по умолчанию нет.
Nerf
Сообщения: 780
Зарегистрирован: 2015.01.29, 00:37

Re: увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение Nerf »

Не всегда можно использовать консоль, иногда нужна "кнопочка, при нажатии которой...". set_time_limit() пробовали?
alexnew2000
Сообщения: 104
Зарегистрирован: 2015.10.04, 09:47

Re: увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение alexnew2000 »

А прямую эскуэлину на удаление написать нельзя? Она то шустрая. Кроме этого к Php уже отношения иметь не будет.
Restlin
Сообщения: 139
Зарегистрирован: 2011.09.09, 18:12

Re: увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение Restlin »

ТС, действительно вы можете просто выполнить deleteAll по условиям переданным в функцию.
Еще предположение, если у вас задача удалить все записи из таблицы, то рекомендую посмотреть в сторону.
Если же у вас удаление модели это сложный бизнес-процесс, то при таких объемах только через консоль.
Аватара пользователя
xtz4ever
Сообщения: 37
Зарегистрирован: 2016.09.23, 17:11

Re: увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение xtz4ever »

Господа решение найдено. если кому интересно вот код.
Я оптимизировал запрос к БД. 50К записей удаляет за 15 сек. 90К за 28 сек.
Аватара пользователя
xtz4ever
Сообщения: 37
Зарегистрирован: 2016.09.23, 17:11

Re: увеличить Maximum execution time of 30 seconds exceeded в yii2 advanced

Сообщение xtz4ever »

Код: Выделить всё

$id = 22; // id товара в БД
$quantity = 100000 ; // кол-во покупаемых товаров.

$goods = Goods::find()->where(['product_id' => $id])->limit($quantity)->asArray()->all();

$file = array();
foreach ($goods as $value){
    $file[] = $value['info']; // Сами товары
    $arr[] = $value['id']; // id этих товаров
}


$array = array_chunk($arr,5000); // Разбиваю онромный массив на массивы по 5К.

foreach ($array as $value){
    \Yii::$app
        ->db
        ->createCommand()
        ->delete('goods', ['id' => $value])  // Удаляю по 5К за итерацию.
        ->execute();
}
Закрыто