У меня был очень похожий опыт, но я остановился на другом решении.
Я тоже тестировал скрипт на 8 ядерном 32 гб дедике с широким каналом и там еле еле 10 потоков шло.
Работающими решением оказалось взять 32 ядерный локальный сервер с 64 оперативки, на не очень быстром канале, с сокс5, на нем 100+ потоков запускалось.
Скрипт тот же, никаких оптимизаций не делалось.
Стоит конечно побольше, чем аренда дедика но тут уж зависит от окупаемости твоей темы, стоит ли оно того или нет.
Но соксы могут быть узким местом, по возможности нужно делать свои соксы. Для этого, можно брать дешевые VPS и установить сокс через опенсурсный софт microsocks для линукса (в инете полно инструкций по установке, занимает не более 5 минут вручную, и можно установку через БАС автоматизировать также на случай если нужны сотни соксов).
Такая проблема: при проверке кода по шагам, код срабатывает, а при запуске нет
-
Смысл такой: получаю код страницы, записываю в переменную, из этой переменной извлекаю текст регулярным выражением и записываю полученный текст в файл. При пошаговом исполнении все работает, а при запуске, текст не извлекается и в файл записывается пустота, что делать, может не успевает сработать "регулярка"?
-
@Ievgen said in Такая проблема: при проверке кода по шагам, код срабатывает, а при запуске нет:
может не успевает сработать "регулярка"?
Она в любом случае сработает, но возможно не к тому тексту, который планировалось.
Выводите в лог значения переменных после изменений, так будет легче найти ошибки.
Гадать никто не будет -
@Ievgen
Вот регулярное выражение "maxQuantity":(\d+),
Вот текст примерный (false,"isLargeItem":false,"couponSale":30,"id":43909427,"canBeOrdered":true,"cod1S":14968472,"characteristicId":43909427,"goodsName":"Смарт часы мужские, умные часы водонипроницаемые для телефона Android iOS круглые","colorName":"черный","colorsetName":null,"sizeName":"0","brandName":"I-Goods","partQuantity":0,"quantity":1,"maxQuantity":171,"minQuantity":1,"sale":51,"personalDiscount":0,"paymentSale":0,"hasOtherSizes":false,"storeName":"Коледино","impossibleDeliveryMsg":null,"price":9890,"priceWithSale":4846,"priceWithCoupon":3392,"priceWithCouponAndSpp":0,"priceWithCouponAndDiscount":3392,"priceSum":9890,"priceSumWithCouponAndDiscount":3392,"couponNumber":null,"couponSource":0,"couponDescFull":"Промокод","couponDescShort":"Промокод","includeInOrder":true,"onStock":1,"targetUrl":"SP"" ) -
@Ievgen said in Такая проблема: при проверке кода по шагам, код срабатывает, а при запуске нет:
Я так и делаю и получаю при пошаговом выполнении в лог выводится текст, а при запуске скрипта в логе пусто...
Выводите еще в лог значение переменной, к которой применяете регулярку. Возможно проблема вовсе не в этом действии
-
Уважаемый @GameBot, спасибо за Вашу помощь, решение проблемы оказалось до банального простая: в блоке "получить код страницы" активировал опцию "ждать полной загрузки сайта" + дополнительно добавил аналогичный блок и все пошло как надо! Скорее всего скрипты на странице не успевали отработать и не отдавали данные.
Спасибо за помощь и наставление на правильный путь!