Поддержка Проблемы и решения Загрузка фото по URL

  • Написал небольшой скрипт по загрузке товара по ссылке и добавил в выполнение:

    class r5ua_class_product_csv {
    	// Артикул
        public $sku = "";
        // Марка авто
        public $mark = "";
        // Модель авто
        public $model = "";
        // Год
        public $year = "";
        // Название
        public $title = "";
        // Объем движка
        public $engine_capacity = "";
        // Тип топлива
        public $fuel_type = "";
        // КПП
        public $transmission = "";
        // OEM
        public $oem = "";
        // Описание
        public $description;
        // Склад(Адрес)
        public $address = "";
        // Цена
        public $price = "";
        // Список фото
        public $images = array();
        // Совместимые (список моделей на который пойдут) (пока в виде текста)
        public $compatible = "";
        // Тип кузова
        public $body_type = "";
        // Цвет
        public $color = "";
    }
    
    function r5ua_function_log_write_text($logText) {
    	$pathFile = get_home_path() . '/logs/event_products_update.log';
    	$logTextAll = date('[Y-m-d H:i:s] ') . 'memory_get_usage: ' . memory_get_usage() . ': ' . $logText;
    	file_put_contents($pathFile, $logTextAll . PHP_EOL, FILE_APPEND);
        unset($pathFile);
        unset($logTextAll);
        unset($logText);
    }
    
    function r5ua_function_products_csv_row($headerCsvCols, $itemCsvCols) {
    	$productCsv = new r5ua_class_product_csv();
        $productCsv->sku = "EMPTY";
        // Size to Size
        if (count($headerCsvCols) == count($itemCsvCols)) {
        	$rowCsvColsCount = count($headerCsvCols);
            $col_index = 0;
            while ($col_index < $rowCsvColsCount) {
                $colTitle = strval($headerCsvCols[$col_index]);
                $colData = $itemCsvCols[$col_index];
                // В файле csv в тексте 'артикул'
                if ($colTitle == 'артикул') {
        			$productCsv->sku = strval($colData);
    			}
                elseif ($colTitle == 'марка') {
                    $productCsv->mark = $colData;
                }
                elseif ($colTitle == 'модель') {
                    $productCsv->model = $colData;
                }
                elseif ($colTitle == 'год') {
                    $productCsv->year = $colData;
                }
                elseif ($colTitle == 'название_запчасти') {
                    $productCsv->title = $colData;
                }
                elseif ($colTitle == 'объём') {
                    $productCsv->engine_capacity = $colData;
                }
                elseif ($colTitle == 'тип_топлива') {
                    $productCsv->fuel_type = $colData;
                }
                elseif ($colTitle == 'Кпп') {
                    $productCsv->transmission = $colData;
                }
                elseif ($colTitle == 'ОЕМ') {
                    $productCsv->oem = $colData;
                }
                elseif ($colTitle == 'описание') {
                    $productCsv->description = $colData;
                }
                elseif ($colTitle == 'склад') {
                    $productCsv->address = $colData;
                }
                elseif ($colTitle == 'цена') {
                    $productCsv->price = $colData;
                }
                elseif ($colTitle == 'фото') {
                	// Список фото через запятую
                    $productCsv->images = explode(',', $colData);
                }
                elseif ($colTitle == 'совместимые') {
                    $productCsv->compatible = $colData;
                }
                elseif ($colTitle == 'тип_кузова') {
                    $productCsv->body_type = $colData;
                }
                elseif ($colTitle == 'цвет') {
                    $productCsv->color = $colData;
                }
                // Go Next
                $col_index += 1;
            }
        }
        return $productCsv;
    }
    
    function r5ua_function_get_products_dict() {
    	$args = array(
    		'numberposts' => -1,
    		'post_status' => 'published',
    	);
        $productsDict = array();
        $products = wc_get_products($args);
        foreach ( $products as $product_one ) {
        	// Артикул
        	$sku_text = $product_one->get_sku();
            $productsDict[$sku_text] = $product_one;
            unset($sku_text);
        }
        unset($products);
        return $productsDict;
    }
    
    function r5ua_function_get_product_wc($productCsv, $productsDict, &$isNewProduct) {
    	$sku_num = $productCsv->sku;
    	if (array_key_exists($sku_num, $productsDict))
    	{
        	$product_one = $productsDict[$sku_num];
            $product_id = $product_one->get_id();
            unset($product_one);
            unset($sku_num);
            $isNewProduct = 0;
            return new WC_Product($product_id);
        }
        else {
            unset($sku_num);
            $isNewProduct = 1;
        	return new WC_Product();
        }
    }
    
    function r5ua_function_product_csv_to_product_wc($productCsv, $productsInsert) {
    	
        // Get Product WC
        $isNewProduct = 0;
        $productWc = r5ua_function_get_product_wc($productCsv, $productsInsert, $isNewProduct);
        
        $productTitle = $productCsv->title . ' ' . $productCsv->mark . ' ' . $productCsv->model;
        
        // Product Title
        $productWc->set_name($productTitle);
        unset($productTitle);
        // can be publish,draft or any wordpress post status
        $productWc->set_status("publish");
        // add the product visibility status
        $productWc->set_catalog_visibility('visible');
        
        // Product Description
        $description_all = $productCsv->description . '
    Двигатель: ' . $productCsv->fuel_type . ' ' . $productCsv->engine_capacity . '
    Тип кузова: ' . $productCsv->body_type . '
    Год: ' . $productCsv->year . '
    Цвет: ' . $productCsv->color . '
    КПП: ' . $productCsv->transmission . '
    Совместимые: ' . $productCsv->compatible;
        $productWc->set_description($description_all);
        unset($description_all);
        
        //can be blank in case you don't have sku, but You can't add duplicate sku's
        $productWc->set_sku($productCsv->sku);
        // set product price
        //$productWc->set_price($productCsv->price); 
        // set product regular price
        $productWc->set_regular_price($productCsv->price); 
        // true or false
        $productWc->set_manage_stock(true);
        // Количество
        $productWc->set_stock_quantity(1);
        // in stock or out of stock value ('instock' or 'outofstock')
        $productWc->set_stock_status('instock');
        // Разрешать предзаказ
        $productWc->set_backorders('yes');
        // Отзывы
        $productWc->set_reviews_allowed(false);
        // Только 1 продукт  в 1 руки
        $productWc->set_sold_individually(false);
        // array of category ids, You can get category id from WooCommerce Product Category Section of WordPress Admin
        // $productWc->set_category_ids(array(1,2,3));
        
        // Сохраняем данные
        $productWc->save();
    	
    	r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': save params' . "\r\n");
        
        $product_attributes = array();
        
        // OEM
        if ($productCsv->oem != '') {
        	$term_taxonomy_ids = wp_set_object_terms( $productWc->get_id(), $productCsv->oem, 'pa_rs_oem', true );
            $product_attributes['pa_rs_oem'] = Array(
            		'name'=>'pa_rs_oem',
           			'value'=>$productCsv->oem,
           			'is_visible' => '1',
           			'is_taxonomy' => '1',
           			'position' => 0
                );
            unset($term_taxonomy_ids);
        }
        
        // Address
        if ($productCsv->address != '') {
        	$term_taxonomy_ids = wp_set_object_terms( $productWc->get_id(), $productCsv->address, 'pa_rs_address', true );
            $product_attributes['pa_rs_address'] = Array(
            		'name'=>'pa_rs_address',
           			'value'=>$productCsv->address,
           			'is_visible' => '1',
           			'is_taxonomy' => '1',
           			'position' => 1
                );
         	unset($term_taxonomy_ids);
        }
        
        // Марка
        if ($productCsv->mark != '') {
        	$term_taxonomy_ids = wp_set_object_terms( $productWc->get_id(), $productCsv->mark, 'pa_rs_mark', true );
            $product_attributes['pa_rs_mark'] = Array(
            		'name'=>'pa_rs_mark',
           			'value'=>$productCsv->mark,
           			'is_visible' => '0',
           			'is_taxonomy' => '1',
           			'position' => 2
                );
            unset($term_taxonomy_ids);
        }
        
        // Модель
        if ($productCsv->model != '') {
        	$term_taxonomy_ids = wp_set_object_terms( $productWc->get_id(), $productCsv->model, 'pa_rs_model', true );
            $product_attributes['pa_rs_model'] = Array(
            		'name'=>'pa_rs_model',
           			'value'=>$productCsv->model,
           			'is_visible' => '0',
           			'is_taxonomy' => '1',
           			'position' => 3
                );
            unset($term_taxonomy_ids);
        }   
        
        update_post_meta( $productWc->get_id(), '_product_attributes', $product_attributes);
        unset($product_attributes);
    	
    	r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': updates attributes' . "\r\n");
        
        // Images
        // Только новым продуктам загружаем фотки
        if ($isNewProduct == 1) {
            if (empty($productCsv->images) == false) {
                $imageIdMain = 0;
                $imageIdGallery = array();
                foreach ( $productCsv->images as $image_one ) {
                    r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': image : ' . strval($image_one) . ': load start ...' . "\r\n");
                    $imageId = 0;
                    try {
                        $imageId = media_sideload_image($image_one, 0, $image_one, 'id');
                    } catch (Exception $e) {
                        r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': image : ' . strval($image_one) . 'Поймано исключение: ' . $e->getMessage() . "\r\n");
                        continue;
                    }
                    
                    r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': image : ' . strval($image_one) . ': load finish' . "\r\n");
    				if( is_wp_error($imageId) ) {
    					// ошибка
    					r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': error: ' . strval($image_one) . ': bad load' . "\r\n");
    				}
    				else {
    					// добавлено 
    					if ($imageIdMain == 0) {
    						$imageIdMain = $imageId;
                            r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': image : ' . strval($image_one) . ': add main' . "\r\n");
    					}
    					else {
    						array_push($imageIdGallery, $imageId);
                            r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': image : ' . strval($image_one) . ': add gallery' . "\r\n");
    					}
    				}
                }
                if ($imageIdMain != 0) {
                    r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': image : ' . strval($image_one) . ': set main start' . "\r\n");
                    $productWc->set_image_id($imageIdMain);
                    r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': image : ' . strval($image_one) . ': set main finish' . "\r\n");
                }
                unset($imageIdMain);
                if (empty($imageIdGallery) == false) {
                    r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': images : set gallery start' . "\r\n");
                    $productWc->set_gallery_image_ids($imageIdGallery);
                    r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': images : set gallery finish' . "\r\n");
                    unset($imageIdGallery);
                }
            }
        }
    	
    	r5ua_function_log_write_text('SKU: ' . strval($productCsv->sku) . ': updates images' . "\r\n");
        
        // Сохраняем данные
        $productWc->save();
        
        return $productWc;
    }
    
    function r5ua_function_remove_bom_utf8($text) {
      if(substr($text,0,3)==chr(hexdec('EF')).chr(hexdec('BB')).chr(hexdec('BF'))) {
           return substr($text,3);
       }
       else {
           return $text;
       }
    }
    
    function r5ua_function_product_remove($product) {
        // Сначала удаляем фото
        $imageIdMain = $product->get_image_id();
        wp_delete_attachment( $imageIdMain, true );
        unset($imageIdMain);
        $imageIdGallery = $product->get_gallery_image_ids();
        if (empty($imageIdGallery) == false) {
            foreach ( $imageIdGallery as $imageId ) {
                wp_delete_attachment( $imageId, true );
            }
        }
        unset($imageIdGallery);
        // Теперь удаляем продукт
        $product->delete(true);
    }
    
    function r5ua_function_products_donwload_from_url($urlData) {
        // Date
        $date_start = date("Y-m-d H:i");
        echo 'START: ' . strval($date_start) . '<br />';
        unset($date_start);
    	$dataCsv = file_get_contents($urlData);
        // Удаляем BOM символы (если есть)
        $dataCsv = r5ua_function_remove_bom_utf8($dataCsv);
    	$rowsCsv = explode("\n", $dataCsv);
        unset($dataCsv);
        $rowsCsvCount = count($rowsCsv);
        $headerCsvCols = explode(";", $rowsCsv[0]);
        $rowCsvColsCount = count($headerCsvCols);
        $productsInsert = r5ua_function_get_products_dict();
        $productsRemove = r5ua_function_get_products_dict();
        $rowIndex = 1;
        // Добавляем или обновляем товары из НОВОГО списка
        while ($rowIndex < $rowsCsvCount) {
        	$itemCsvCols = explode(";", $rowsCsv[$rowIndex]);
            $productCsv = r5ua_function_products_csv_row($headerCsvCols, $itemCsvCols);
            // Если цена === 0 - то пропускаем
            if (($productCsv->price != '0') and (count($productCsv->images) != 0)) {
                $productWc = r5ua_function_product_csv_to_product_wc($productCsv, $productsInsert, $productsRemove);
                $productWcSku = $productWc->get_sku();
                // Добавляем в общий список (если не было)
                if (array_key_exists($productWcSku, $productsInsert) == FALSE)
            	{
            	    $productsInsert[$productWcSku] = $productWc;
                }
                
                // Удаляем из списка если актуальный
                if (array_key_exists($productWcSku, $productsRemove)) {
                    // Убираем товар из списка на удаление (он есть в новом файле)
                    unset($productsRemove[$productWcSku]);
                }
    			r5ua_function_log_write_text('ROW: ' . strval($rowIndex) . '; SKU: ' . strval($productCsv->sku) . ': finish' . "\r\n" . "\r\n");
                unset($productWc);
                unset($productWcSku);
            }
            unset($productCsv);
            unset($itemCsvCols);     
        	$rowIndex += 1;
        }
        // Удаляем товары из СТАРОГО списка (которых нет в НОВОМ)
        if (count($productsRemove) > 0) {
            foreach ( $productsRemove as $product ) {
                r5ua_function_product_remove($product);
            }
        }
        // Date
        $date_finish = date("Y-m-d H:i");
        echo 'FINISH: ' . strval($date_finish) . '<br />';
    	return '<br />' . 'END!';
    }
    
    // Запуск
    r5ua_function_products_donwload_from_url($URL_PATH);

    И каждый раз зависает где то после 5-10 минут (товаров суммарно 17к), в логе вот:

    [2019-08-17 20:48:27] memory_get_usage: 113333992: SKU: 11103: save params
    
    [2019-08-17 20:48:27] memory_get_usage: 113326104: SKU: 11103: updates attributes
    
    [2019-08-17 20:48:27] memory_get_usage: 113326152: SKU: 11103: image : IMG_URL: load start ...
    
    [2019-08-17 20:48:28] memory_get_usage: 113335008: SKU: 11103: image : IMG_URL: load finish
    
    [2019-08-17 20:48:28] memory_get_usage: 113335008: SKU: 11103: image : IMG_URL: add main
    
    [2019-08-17 20:48:28] memory_get_usage: 113335008: SKU: 11103: image : IMG_URL: set main start
    
    [2019-08-17 20:48:28] memory_get_usage: 113335400: SKU: 11103: image : IMG_URL: set main finish
    
    [2019-08-17 20:48:28] memory_get_usage: 113335328: SKU: 11103: updates images
    
    [2019-08-17 20:48:28] memory_get_usage: 113342280: ROW: 3457; SKU: 11103: finish
    
    [2019-08-17 20:48:29] memory_get_usage: 113366784: SKU: 14106: save params
    
    [2019-08-17 20:48:29] memory_get_usage: 113358896: SKU: 14106: updates attributes
    
    [2019-08-17 20:48:29] memory_get_usage: 113358944: SKU: 14106: image : IMG_URL: load start ...
    
    [2019-08-17 20:48:29] memory_get_usage: 113367800: SKU: 14106: image : IMG_URL: load finish
    
    [2019-08-17 20:48:29] memory_get_usage: 113367800: SKU: 14106: image : IMG_URL: add main
    
    [2019-08-17 20:48:29] memory_get_usage: 113367800: SKU: 14106: image : IMG_URL: load start ...
    
    [2019-08-17 20:48:30] memory_get_usage: 113370712: SKU: 14106: image : IMG_URL: load finish
    
    [2019-08-17 20:48:30] memory_get_usage: 113371112: SKU: 14106: image : IMG_URL: add gallery
    
    [2019-08-17 20:48:30] memory_get_usage: 113371112: SKU: 14106: image : IMG_URL: load start ...
    
    [2019-08-17 20:48:30] memory_get_usage: 113375144: SKU: 14106: image : IMG_URL: load finish
    
    [2019-08-17 20:48:30] memory_get_usage: 113375144: SKU: 14106: image : IMG_URL: add gallery
    
    [2019-08-17 20:48:30] memory_get_usage: 113375144: SKU: 14106: image : IMG_URL: load start ...
    
    [2019-08-17 20:48:31] memory_get_usage: 113379176: SKU: 14106: image : IMG_URL: load finish
    
    [2019-08-17 20:48:31] memory_get_usage: 113379176: SKU: 14106: image : IMG_URL: add gallery
    
    [2019-08-17 20:48:31] memory_get_usage: 113379176: SKU: 14106: image : IMG_URL: set main start
    
    [2019-08-17 20:48:31] memory_get_usage: 113379568: SKU: 14106: image : IMG_URL: set main finish
    
    [2019-08-17 20:48:31] memory_get_usage: 113379520: SKU: 14106: images : set gallery start
    
    [2019-08-17 20:48:31] memory_get_usage: 113379896: SKU: 14106: images : set gallery finish
    
    [2019-08-17 20:48:31] memory_get_usage: 113379472: SKU: 14106: updates images
    
    [2019-08-17 20:48:31] memory_get_usage: 113386896: ROW: 3458; SKU: 14106: finish
    
    [2019-08-17 20:48:32] memory_get_usage: 113410872: SKU: 7131: save params
    
    [2019-08-17 20:48:32] memory_get_usage: 113403200: SKU: 7131: updates attributes
    
    [2019-08-17 20:48:32] memory_get_usage: 113403256: SKU: 7131: image : IMG_URL: load start ...

    Прошу помочь разобраться что не так?

    • Тема изменена 4 года, 7 месяцев назад пользователем rofl113.
Просмотр 10 ответов — с 16 по 25 (всего 25)
  • Этот минус на что может повлиять?
    1) Поддержка только на англ?
    2) Задержка к сайту будет выше?

    это очень условный минус, «на любителя»
    1. Как правило — да.
    2. Смотря от кого и до куда.

    На сколько плох вариант — поставить компьютер и подключить к нему 100 Мбит в сек?

    при не большой посещаемости — вполне имеет право на существование.

    Модератор Yui

    (@fierevere)

    永子

    плох вариант — поставить компьютер и подключить к нему 100 Мбит

    плох настолько, что у вас нет никакого резервирования.

    Отключили свет
    Отключили интернет
    С железками возникли проблемы
    всякое бывает…

    В условиях ДЦ эти проблемы решаются быстро, насколько быстро решите их вы ?

    Некоторые провайдеры кстати могут запрещать подобное… Вообщем, много нюансов тут.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    И каждый раз зависает где то после 5-10 минут (товаров суммарно 17к), в логе вот:

    1. Каким образом запускаете?
    2. В логе ошибок чего отображается?

    1. Каким образом запускаете?
    2. В логе ошибок чего отображается?

    1) Запускаю через WP-Cron (через Add PHP Cron Event).
    2) в Журнале ошибок вот это:

    [Sun Aug 18 16:25:51 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566134319.7864489555358886718750
    [Sun Aug 18 16:25:51 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566134319.7864489555358886718750
    [Sun Aug 18 16:36:01 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566134921.7751579284667968750000
    [Sun Aug 18 16:36:01 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566134921.7751579284667968750000
    [Sun Aug 18 16:46:10 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566135526.7701349258422851562500
    [Sun Aug 18 16:46:10 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566135526.7701349258422851562500
    [Sun Aug 18 16:56:19 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566136129.7553229331970214843750
    [Sun Aug 18 16:56:19 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566136129.7553229331970214843750
    [Sun Aug 18 17:16:36 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566137297.6930179595947265625000
    [Sun Aug 18 17:16:36 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566137297.6930179595947265625000
    [Sun Aug 18 17:26:47 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566137881.7611029148101806640625
    [Sun Aug 18 17:26:47 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566137881.7611029148101806640625
    [Sun Aug 18 17:36:55 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566138538.7818980216979980468750
    [Sun Aug 18 17:36:55 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566138538.7818980216979980468750
    [Sun Aug 18 17:47:05 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: error reading data from FastCGI server, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566139142.7430040836334228515625
    [Sun Aug 18 17:47:05 2019] [warn] [client 31.31.198.65] (104)Connection reset by peer: mod_fcgid: ap_pass_brigade failed in handle_request_ipc function, referer: https://xn----9sbwndmgjs.xn--p1ai/wp-cron.php?doing_wp_cron=1566139142.7430040836334228515625

    Проблема в этом?
    error reading data from FastCGI server
    Надо где то увеличить время выполнения?

    Странно предыдущее сообщение с журналом еще на рассмотрении.
    1) Запускаю через WP-Cron (через Add PHP Cron Event).
    Вышел из ситуации (кастыль кастылем) запускаю каждые 10 минут с запоминанием в файле номера последнего успешно загруженного товара =)

    Лимит на выполнение скриптов в рамках услуг виртуального хостинга составляет 300 секунд . (с) вот так и ответили.
    Видимо придется резать на куски.

    300 это еще по божески.
    у большинства 30-60 сек по умолчанию.

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Лимит на выполнение скриптов в рамках услуг виртуального хостинга составляет 300 секунд . (с) вот так и ответили.

    А если через серверный Cron/ssh? WP-Cron тоже можно так запускать.

    Хостинг — это сплошной холивар, поэтому не буду называть свой, но у меня таким способом, по-моему, до 10 часов можно скрипт крутить.

    Как вариант, возможно, стоит рассмотреть смену хостинга, если этот момент критичен.

    Хостинг — это сплошной холивар, поэтому не буду называть свой, но у меня таким способом, по-моему, до 10 часов можно скрипт крутить.

    У них есть возможность изменить время но только если перейти на VPS 🙂

    Я пока решил проблему через загрузку с контролем времени (после 280 сек останавливаю скрипт)
    А задачу в WP_Cron поставил каждые 5 мин.
    Так же добавил логику записи в файл данных о начале загрузке и статус завершения загрузки.
    Что бы он мне не все время грузил одно и тоже. А скачивал раз в день файл и по нему обновлял один раз в день.
    Возможно это костыльно, но за то работает.
    Позже наверно буду или переходить на другой хостинг или на VPS.

Просмотр 10 ответов — с 16 по 25 (всего 25)
  • Тема «Загрузка фото по URL» закрыта для новых ответов.