Задать вопрос
  • Как сделать пакетную обработку в laravel?

    ThunderCat
    @ThunderCat
    Hfnas, у вас все еще нет понимания в чем тормоза. По идее на 20К записей все должно отрабатывать практически моментально, а у вас, по вашему описанию, уходит на 1 запись что-то в районе секунды, что овердофига. То есть на весь массив данных чуть больше 5 часов. Если тормоза вызывает запрос к апи, возможно стоит вытащить за один вызов максимальное количество записей, и далее уже работать с массивом, что в разы быстрее. Если не понимаете как работать с логированием времени - спрашивайте.
    Написано
  • Как сделать пакетную обработку в laravel?

    ThunderCat
    @ThunderCat
    Hfnas, Если у вас стандартные ларавелевые модели, то достаточно засетить значения в объект и сделать save(), запись либо апдейтнится, либо создастся, в зависимости от наличия id.

    Я не знаю, как для апдейт делать пакетную обработку.
    Никак, апдейт предполагает масс изменения только полей с общим признаком одним набором значений. Через case можно задать несколько значений для соответствующих айди, но это скорее костыль или решение для небольших вариаций значений полей, для большой выборки это неэффективно. Я бы не стал заморачиваться и с инсертами, так как проблема явно не в них. Для начала сделайте чтобы существующие действия работали, так же, как я и писал в собственно ответе, стоит для начала определить где тормоза, а то все ваши действия напоминают купание в зеленке при царапине на пальце...

    промежуточные результаты по прежнему через апи?
    Зависит что вы делаете, и я не вижу где вы там апи используете? Вы просто берете контакты из ранее полученного массива, к апи вы обращались 1 раз, при получении записей, далее вся работа с этим массивом идет... По сути тут у вас та же логика, либо выбирать массово, либо использовать как у вас firstOrNew(), опять же, супервыйгрыша по времени вы не получите, просто оптимальнее выбирать 1 запросом много записей, нежели много раз по 1, так как накладные затраты на каждый запрос сильно выше чем разница между выборкой одного значения и допустим 100 (а при firstOrNew каждый раз идет запрос в бд). Это не критично на 100-300 записей, но не когда у вас их под пару сотен тысяч. Кстати, логичный вопрос - а сколько записей-то в таблицах? И сколько примерно в црм?
    Написано
  • Как сделать пакетную обработку в laravel?

    ThunderCat
    @ThunderCat
    Hfnas,
    Вопрос в том , что неизвестно,какие записи существуют ,а какие не существуют,поэтому нужно апи. В который раз убеждаюсь, что без апи тут не обойтись.
    Еще раз по шагам:
    1) у вас приходит 100 записей из апи.
    2) Делаете запрос в БД - селект все имеющиеся записи, где TestID in (все айди пришедшие из апи). В итоге получаете ИМЕЮЩИЕСЯ в бд записи (если я правильно понял и TestID - идентификатор записи амо).
    3) Далее форич $rows, в котором все операции делятся на 2 типа - есть в базе (то есть вернулись в предыдущем запросе, как проверить наличие элемента в массиве надеюсь не надо объяснять?) и нет в базе.
    4) Заполняете данными - сохранили. Профит.
    Логика там вроде не сложная, все должно отработать практически мгновенно. Немного напрягает странное именование полей, так что по логике присвоения значений уже сами.
    Написано
  • Как сделать пакетную обработку в laravel?

    ThunderCat
    @ThunderCat
    Hfnas, Я тут еще и на код глянул, давайте по порядку:
    1)
    for ($i = 1; $i <= 100; ++$i) {
        $entity = TestLead::firstOrNew(['crmCompanyID'=>$companyID,'TestID' => $row->getId()]);
    Откуда взялся $row?
    2) фор там зачем? Вроде нигде итерационный счетчик ниже не задействован, кроме того условие какое-то странное, если у вас в каком-то сете будет меньше 100 элементов, то счетчик вылетит за пределы массива. Хотя он и так ничего не считает. Видимо предполагался форич, но что-то пошло не так.
    3) Насколько я понял, задача обновить состояние уже существующих записей и добавить из апи несуществующие. Выбираете все существующие из бд по айди через in(), все полученные результаты будут существующими записями, остальные соответственно отсутствующими. Дальше логика на два ифа...
    Написано
  • Как автоматизировать покупку товаров?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    Aragorn, селениум это веб драйвер, есть под почти все платформы/браузеры и языки (например под php). Eсть пупитир, который драйвер для хрома, тоже почти под все платформы/языки. В целом для понимания смотреть тут: https://habr.com/ru/articles/566348/
    Написано
  • Что лучше использовать для связей в бд?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Boris Köln, во первых причем тут вообще масс INSERT? Во вторых - если у вас есть список ID и есть выбор делать джоин или делать in(...), то ин ЧАЩЕ ВСЕГО будет более быстрым, а иногда и безальтернативным вариантом.
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    Adamos,
    вот как раз для четкого разделения нормальной рабочей системы и "пошпилить" дуалбут очень хорошо подходит.
    Когда я был помоложе я так и делал, у меня была сусе основной системой и винда для квэйк3. Со временем удобства винды по сути убили весь профит от использования линухов, где-то начиная с ХР... Все работало достаточно совместимо с любой хостинговой платформой. А специфика работы позволяет мне "переключаться" между игрой и работой в произвольное время (что не мешает выполнять работу )). Потом уже стала модной виртуализация рабочего пространства, но у меня по сути 99% проектов ее не требовали. Теперь мне тупо лень переучиваться на линуксовые инструменты, которые у меня есть под виндой. А на поддержке проект доставшийся от фаната докера, причем чел явно ни в кодинге ни в девопс не блистал. Теперь надо поднять и работать с десятком контейнеров, необходимость которых равна абсолютному нулю, часть снести, часть настроить, а часть кода переписать. Ну и напилить кучу новых фич. Как минимум на старте нужен докер локально, все остальные размышления о вреде игр и пользе линукса для печени я буду обдумывать после решения этой задачи )
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    rPman,
    помучавшись с тормозами будет логично выкинуть windows и идти в мир linux
    Ну, не у всех жисть заканчивается на использовании докера, я вот пошпилить после работы люблю, инструменты для всяких моих хобби привычные и толковые под вынь, попытка пересесть на линь полностью провалилась. При том что я неплохо знаю ос на уровне администрирования, вплоть до поддержки нескольких локалок в свое время, с маршрутизацией и файерволами, объединением и сепарацией нескольких интернет каналов и прочая... Но как личная домашняя ос не прижилась.
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    Проблема докера больше в области ФС, нежели в производительности как таковой, в частности маунт внутрь контейнера внешней папки винды катастрофически роняет производительность. Отсюда и вопрос...
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    Да, я в курсе, собсно вопрос именно в "натуральности" линукса внутри всл, включая ФС...
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    rPman, по сути мне графическая оболочка до попы, нужен докер, в идеале видимый из винды. Но пойдет и вариант с монтируемым куском проекта внутрь контейнера.
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    Владислав Лысков, ясно, спасибо, Alexey Dmitriev вот тоже говорит что линь внутри "настоящая" ) Буду пробовать.
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    и есть полноценная Ubuntu внутри WSL
    Да, я в курсе, вопрос был про производительность и возможность запуска в ней нативного линуксового докера с сопоставимой производительностью.
    И она работает так же хорошо, как и отдельно стоящая ОС, а также решает проблемы с тормозами docker в Windows.
    это уже внушает оптимизм! Именно то что я хотел узнать. Спасибо, все таки буду пробовать.
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    VoidVolker, Sanes
    Есть же виртуальные машины для этих задач.
    Проц амд райзен3 не поддерживает хиперХ, соответственно все виртуалбоксы и прочие средства виртуализации мимо, бо тормозят безбожно, собсно нужен только докер, который вообще пипец тормозит (ну и смысл пихать докер внутрь виртуалбокса отсутствует). Тем не менее, на лине все ходит вполне достойно под докером. Отсюда и вопрос.
    Написано
  • Полноценная Убунта поверх WSL?

    ThunderCat
    @ThunderCat Автор вопроса
    В любом случае будет хуже, чем отдельно стоящая как минимум из-за того что ресурсы делятся.
    Это очевидно. Вопрос только в том будет ли это СИЛЬНО хуже чем отдельная линь. Так то докер в винде и докер в лине по производительности раз в 10 отличаются (естественно в пользу линь).

    специальный драйвер, который позволяет внутри wsl использовать видеокарту без проброса pcie
    ЕМНИП бОльшая часть проблем производительности докера завязана на ФС, которая останется(?) виндовой?
    Написано
  • Скрипт для передачи данных, в поисках простого решения. кто может помочь?

    ThunderCat
    @ThunderCat Куратор тега Веб-разработка
    юзеры моего сайта по большой части будут в адеквате, да и никто не будет забивать диски или ддосить сервис.
    Если сайт будет в открытом доступе, то все это ваши прекрасные фантазии из мира розовых пони. Любая форма, находящаяся в свободном доступе рано или поздно (скорее рано) будет тыкаться ботами, а затем скорее всего и их владельцами.
    Написано
  • Как организовать wifi сеть на 300 метров?

    ThunderCat
    @ThunderCat
    vinsler,
    wi-fi сеть любая, подразумевает скорости отличные от 2010-х годов и 10 мб / сек.
    ой, правда? Пойду скажу макдаку что они отстали со своим вайфаем на 14 лет...

    Средняя скорость для норм работы и использования сейчас это 100 мб / сек.
    Ну, если задача смотреть оранжевый ютуб в 4К, то наверное да. Возможно вы удивитесь, но не всем нужны такие скорости, например нужно обеспечить сеткой склад, чтобы кладовщики имели возможность подключить сканеры товара к системе учета.
    Написано
  • Как организовать wifi сеть на 300 метров?

    ThunderCat
    @ThunderCat
    vinsler,
    Можно пару ссылок на стоковые роутеры, с хорошими антеннми, которые передадут 100% сигнал хотя бы до 50мб, по вай-фай на 150м без потерь с пингом в среднем 10 мс?
    1) Чет не разглядел подобных требований в вопросе.

    (в плане того, который я с уверенностью приму на телефоне в этом же радиусе на открытой местности.)
    Ок, направленную антенну к телефону, я так понимаю, не проблема прикрепить?
    Написано
  • Как исправить проблему запуска проекта на laravel?

    ThunderCat
    @ThunderCat Куратор тега PHP
    Азиз Таджитдинов,
    вкладка terminal
    терминал в виндовс, общее название для всех ОС - консоль, она же командная строка - command line interface (CLI). При запуске из нее используется отдельный интерпретатор, со своим ини файлом. Для определения какой файл используется есть соответствующая команда php --ini. Ну и настраиваете в нем подключение нужных библиотек. Если файл не подключен - берете свой development или production и меняете на пхп.ини в той папке где указано в ответе команды и так же настраиваете.
    Написано
  • Как организовать wifi сеть на 300 метров?

    ThunderCat
    @ThunderCat
    vinsler,
    это wifi мост.
    Это антенна, а репитер мод или бридж мод - настраивается в оборудовании, так как режим просто меняет метод подключения устройства в сеть - объединяет с имеющейся или делит на сегменты, организуя НАТ. К мощности сигнала оно никак не относится, хотя конечно оборудование делится на классы по мщности излучения, но "это другое" )

    Он не передаст вам сигнал wi-fi на 500м, а передаст сигнал от передатчика к приемнику.
    Так и цели такой нет у ТС:
    Первая точка - точка с проводом lan и интернетом, далее все точки в режиме репитера.
    Что по сути собсно и надо было. Кстати, на открытой местности с нормальной антенной вполне справятся даже простенькие сохо рутеры, умеющие софтверно в роутинг, главное чтобы антенна была съемная на устройстве, под замену.
    Написано