Size: a a a

2021 March 22

VS

Vladimir @Enjame Stu... in Laravel Pro
шутка
источник

AK

Alex Kovalchuk in Laravel Pro
Vladimir @Enjame Studenikin
без докера слабо?
🤣
источник

S

Sukhrob in Laravel Pro
HahahImFaus
Так, а можно сделать просто запрос
->where('Дата окончания' , '<=', 'Текущая дата' )->get();
А
потом удалять их или менять статус
Но все же каждый раз делать такой запрос кажется грамоздко, хотя не придется парится с очередями
Вы делаете такой запрос раз в минуту или раз в час, это не будет влиять на нагрузку
источник

S

Sukhrob in Laravel Pro
Igor Melnychuk
Всё ты правильно сказал. Но - делай это через chunk(10). А ещё круче внутри замыкания чанка бросай задачу в очередь - ведь там же высылаются мэйлы. Одна задача на каждую плдписку = одна задача на каждый мейл.
Solidность
источник

IM

Igor Melnychuk in Laravel Pro
Sukhrob
Solidность
Тут не про SOLID. Просто chunk предотратит проблемы с тем, что миллион запись сразу полезут в оперативку, а на проде не всем выделяют кучу памяти для обычных планировщиков.

А пробрасывание каждого экземпляра через очередь позволит распределить нагрузку - снять основную нагрузку из команды планировщика, и положить её на очередь
источник

AY

Artyom Yun in Laravel Pro
if($response->meta->size > 1000){
               $size = 1000;
           } else{
               $size = $response->meta->size;
           }

           for ($i = 0; $i < $size; $i++){
               intermediateProducts::query()
                   ->insert([
                       'id' => $response->rows[$i]->id,
                       'code' => $response->rows[$i]->code,
                       'can_sale' => $response->rows[$i]->attributes[1]->value,
                       'group' => $response->rows[$i]->pathName,
                       'first_category' => $response->rows[$i]->attributes[2]->value,
                       'second_category' => $response->rows[$i]->attributes[3]->value,
                       'finally_category' => $response->rows[$i]->attributes[4]->value,
                       'finally_category_code' => $response->rows[$i]->attributes[5]->value,
                       'quantity' => $response->rows[$i]->quantity,
                       'sale_price' => $response->rows[$i]->salePrices[0]->value,
                       'rrc' => $response->rows[$i]->attributes[0]->value,
                       'purchase_price' => $response->rows[$i]->buyPrice->value,
                       'barcode128' => $response->rows[$i]->barcodes[0]->code128,
                       'vendor_code' => $response->rows[$i]->article,
                       'name' => $response->rows[$i]->name,
                       'factory_name' => $response->rows[$i]->attributes[6]->value,
                       'brand' => $response->rows[$i]->attributes[7]->value,
                       'model' => $response->rows[$i]->attributes[8]->value,
                       'code_model' => $response->rows[$i]->attributes[9]->value,
                       'description' => $response->rows[$i]->description,
                       'images' => $response->rows[$i]->images->meta->href,
                       'gender' => $response->rows[$i]->attributes[10]->value,
                       'size' => $response->rows[$i]->attributes[11]->value,
                       'second_size' => $response->rows[$i]->attributes[12]->value,
                       'site_size' => $response->rows[$i]->attributes[13]->value,
                       'color' => $response->rows[$i]->attributes[14]->value,
                       'factory_color' => $response->rows[$i]->attributes[15]->value,
                       'filter_color' => $response->rows[$i]->attributes[16]->value,
                       'characteristic' => $response->rows[$i]->attributes[17]->value,
                       'second_characteristic' => $response->rows[$i]->attributes[18]->value,
                       'model_vendor' => $response->rows[$i]->attributes[19]->value,
                       'model_gender' => $response->rows[$i]->attributes[20]->value,
                       'model_gender_color-taste' => $response->rows[$i]->attributes[21]->value,
                       'weight' => $response->rows[$i]->attributes[22]->value,
                       'volume' => $response->rows[$i]->attributes[23]->value,
                       'package_size' => $response->rows[$i]->attributes[24]->value
                       ]);
           }

будет ли краш бд?
источник

s

s4b0t in Laravel Pro
Artyom Yun
if($response->meta->size > 1000){
               $size = 1000;
           } else{
               $size = $response->meta->size;
           }

           for ($i = 0; $i < $size; $i++){
               intermediateProducts::query()
                   ->insert([
                       'id' => $response->rows[$i]->id,
                       'code' => $response->rows[$i]->code,
                       'can_sale' => $response->rows[$i]->attributes[1]->value,
                       'group' => $response->rows[$i]->pathName,
                       'first_category' => $response->rows[$i]->attributes[2]->value,
                       'second_category' => $response->rows[$i]->attributes[3]->value,
                       'finally_category' => $response->rows[$i]->attributes[4]->value,
                       'finally_category_code' => $response->rows[$i]->attributes[5]->value,
                       'quantity' => $response->rows[$i]->quantity,
                       'sale_price' => $response->rows[$i]->salePrices[0]->value,
                       'rrc' => $response->rows[$i]->attributes[0]->value,
                       'purchase_price' => $response->rows[$i]->buyPrice->value,
                       'barcode128' => $response->rows[$i]->barcodes[0]->code128,
                       'vendor_code' => $response->rows[$i]->article,
                       'name' => $response->rows[$i]->name,
                       'factory_name' => $response->rows[$i]->attributes[6]->value,
                       'brand' => $response->rows[$i]->attributes[7]->value,
                       'model' => $response->rows[$i]->attributes[8]->value,
                       'code_model' => $response->rows[$i]->attributes[9]->value,
                       'description' => $response->rows[$i]->description,
                       'images' => $response->rows[$i]->images->meta->href,
                       'gender' => $response->rows[$i]->attributes[10]->value,
                       'size' => $response->rows[$i]->attributes[11]->value,
                       'second_size' => $response->rows[$i]->attributes[12]->value,
                       'site_size' => $response->rows[$i]->attributes[13]->value,
                       'color' => $response->rows[$i]->attributes[14]->value,
                       'factory_color' => $response->rows[$i]->attributes[15]->value,
                       'filter_color' => $response->rows[$i]->attributes[16]->value,
                       'characteristic' => $response->rows[$i]->attributes[17]->value,
                       'second_characteristic' => $response->rows[$i]->attributes[18]->value,
                       'model_vendor' => $response->rows[$i]->attributes[19]->value,
                       'model_gender' => $response->rows[$i]->attributes[20]->value,
                       'model_gender_color-taste' => $response->rows[$i]->attributes[21]->value,
                       'weight' => $response->rows[$i]->attributes[22]->value,
                       'volume' => $response->rows[$i]->attributes[23]->value,
                       'package_size' => $response->rows[$i]->attributes[24]->value
                       ]);
           }

будет ли краш бд?
это шедевр
источник

AY

Artyom Yun in Laravel Pro
подругому никак
источник

IM

Igor Melnychuk in Laravel Pro
Artyom Yun
if($response->meta->size > 1000){
               $size = 1000;
           } else{
               $size = $response->meta->size;
           }

           for ($i = 0; $i < $size; $i++){
               intermediateProducts::query()
                   ->insert([
                       'id' => $response->rows[$i]->id,
                       'code' => $response->rows[$i]->code,
                       'can_sale' => $response->rows[$i]->attributes[1]->value,
                       'group' => $response->rows[$i]->pathName,
                       'first_category' => $response->rows[$i]->attributes[2]->value,
                       'second_category' => $response->rows[$i]->attributes[3]->value,
                       'finally_category' => $response->rows[$i]->attributes[4]->value,
                       'finally_category_code' => $response->rows[$i]->attributes[5]->value,
                       'quantity' => $response->rows[$i]->quantity,
                       'sale_price' => $response->rows[$i]->salePrices[0]->value,
                       'rrc' => $response->rows[$i]->attributes[0]->value,
                       'purchase_price' => $response->rows[$i]->buyPrice->value,
                       'barcode128' => $response->rows[$i]->barcodes[0]->code128,
                       'vendor_code' => $response->rows[$i]->article,
                       'name' => $response->rows[$i]->name,
                       'factory_name' => $response->rows[$i]->attributes[6]->value,
                       'brand' => $response->rows[$i]->attributes[7]->value,
                       'model' => $response->rows[$i]->attributes[8]->value,
                       'code_model' => $response->rows[$i]->attributes[9]->value,
                       'description' => $response->rows[$i]->description,
                       'images' => $response->rows[$i]->images->meta->href,
                       'gender' => $response->rows[$i]->attributes[10]->value,
                       'size' => $response->rows[$i]->attributes[11]->value,
                       'second_size' => $response->rows[$i]->attributes[12]->value,
                       'site_size' => $response->rows[$i]->attributes[13]->value,
                       'color' => $response->rows[$i]->attributes[14]->value,
                       'factory_color' => $response->rows[$i]->attributes[15]->value,
                       'filter_color' => $response->rows[$i]->attributes[16]->value,
                       'characteristic' => $response->rows[$i]->attributes[17]->value,
                       'second_characteristic' => $response->rows[$i]->attributes[18]->value,
                       'model_vendor' => $response->rows[$i]->attributes[19]->value,
                       'model_gender' => $response->rows[$i]->attributes[20]->value,
                       'model_gender_color-taste' => $response->rows[$i]->attributes[21]->value,
                       'weight' => $response->rows[$i]->attributes[22]->value,
                       'volume' => $response->rows[$i]->attributes[23]->value,
                       'package_size' => $response->rows[$i]->attributes[24]->value
                       ]);
           }

будет ли краш бд?
Произошёл краш чата - слишком большая простыня кода.

И вопрос по типу Битрикс 24 на вентилятор
источник

S

Sukhrob in Laravel Pro
«Одна задача на каждую подписку = одна задача на каждый мейл.»
Точнее одна задача для каждой 10 записей, одна задача для одного юзера. В итоге мы получаем 11 задач, 1 глобальный, 10 для 10 юзеров
источник

s

s4b0t in Laravel Pro
Artyom Yun
подругому никак
надеюсь вы деньги за это не берёте
источник

AY

Artyom Yun in Laravel Pro
объясни, что тут не так?
источник

IM

Igor Melnychuk in Laravel Pro
Sukhrob
«Одна задача на каждую подписку = одна задача на каждый мейл.»
Точнее одна задача для каждой 10 записей, одна задача для одного юзера. В итоге мы получаем 11 задач, 1 глобальный, 10 для 10 юзеров
11 задач - ещё более правильное решение, но тут черезчур. Можно просто в планировщике по 10 записей забирать и бросать каждую в очередь
источник

ЕК

Егор Карась... in Laravel Pro
Я вернулся
источник

ЕК

Егор Карась... in Laravel Pro
Куда вы Кукана дели?
источник

ЕК

Егор Карась... in Laravel Pro
Artyom Yun
if($response->meta->size > 1000){
               $size = 1000;
           } else{
               $size = $response->meta->size;
           }

           for ($i = 0; $i < $size; $i++){
               intermediateProducts::query()
                   ->insert([
                       'id' => $response->rows[$i]->id,
                       'code' => $response->rows[$i]->code,
                       'can_sale' => $response->rows[$i]->attributes[1]->value,
                       'group' => $response->rows[$i]->pathName,
                       'first_category' => $response->rows[$i]->attributes[2]->value,
                       'second_category' => $response->rows[$i]->attributes[3]->value,
                       'finally_category' => $response->rows[$i]->attributes[4]->value,
                       'finally_category_code' => $response->rows[$i]->attributes[5]->value,
                       'quantity' => $response->rows[$i]->quantity,
                       'sale_price' => $response->rows[$i]->salePrices[0]->value,
                       'rrc' => $response->rows[$i]->attributes[0]->value,
                       'purchase_price' => $response->rows[$i]->buyPrice->value,
                       'barcode128' => $response->rows[$i]->barcodes[0]->code128,
                       'vendor_code' => $response->rows[$i]->article,
                       'name' => $response->rows[$i]->name,
                       'factory_name' => $response->rows[$i]->attributes[6]->value,
                       'brand' => $response->rows[$i]->attributes[7]->value,
                       'model' => $response->rows[$i]->attributes[8]->value,
                       'code_model' => $response->rows[$i]->attributes[9]->value,
                       'description' => $response->rows[$i]->description,
                       'images' => $response->rows[$i]->images->meta->href,
                       'gender' => $response->rows[$i]->attributes[10]->value,
                       'size' => $response->rows[$i]->attributes[11]->value,
                       'second_size' => $response->rows[$i]->attributes[12]->value,
                       'site_size' => $response->rows[$i]->attributes[13]->value,
                       'color' => $response->rows[$i]->attributes[14]->value,
                       'factory_color' => $response->rows[$i]->attributes[15]->value,
                       'filter_color' => $response->rows[$i]->attributes[16]->value,
                       'characteristic' => $response->rows[$i]->attributes[17]->value,
                       'second_characteristic' => $response->rows[$i]->attributes[18]->value,
                       'model_vendor' => $response->rows[$i]->attributes[19]->value,
                       'model_gender' => $response->rows[$i]->attributes[20]->value,
                       'model_gender_color-taste' => $response->rows[$i]->attributes[21]->value,
                       'weight' => $response->rows[$i]->attributes[22]->value,
                       'volume' => $response->rows[$i]->attributes[23]->value,
                       'package_size' => $response->rows[$i]->attributes[24]->value
                       ]);
           }

будет ли краш бд?
Страшнее то, что это — мидлл.
источник

AY

Artyom Yun in Laravel Pro
да скажите что не так
источник

S

Sukhrob in Laravel Pro
Sukhrob
«Одна задача на каждую подписку = одна задача на каждый мейл.»
Точнее одна задача для каждой 10 записей, одна задача для одного юзера. В итоге мы получаем 11 задач, 1 глобальный, 10 для 10 юзеров
Насчёт солидности, я не соглашусь, вместо того чтобы всех под один запрос засунуть вы решили разделить их по 10 штук и обрабатывать каждого отдельно, разве концепция солида не такова? А точнее один из принципов солида
источник

AY

Artyom Yun in Laravel Pro
я реально не знаю как по-другому столько записей закинуть
источник

ЕК

Егор Карась... in Laravel Pro
Artyom Yun
я реально не знаю как по-другому столько записей закинуть
источник