Задать вопрос
  • Какие подводные при хранении токенов в memcached?

    ThunderCat
    @ThunderCat Куратор тега PHP
    accountnujen,
    ок, почему в дефолте он отключен? если "ENV is not as commonly used", то что тогда часто используется?
    До конца читали? through getenv().
    Написано
  • Какие подводные при хранении токенов в memcached?

    ThunderCat
    @ThunderCat Куратор тега PHP
    accountnujen,
    как-как... вот так: $memcached->set("password")
    о, прикольно. Во первых будет $memcached->set("password",'12345678'), а во вторых значит в коде где-то всё-таки будет '12345678', что возвращает нас к начальной проблеме - для того чтобы засетить мемкеш нужно иметь где-то в доступном для кода месте данные. Ой, подождите... это же то от чего вы пытались избавиться?
    Написано
  • Какие подводные при хранении токенов в memcached?

    ThunderCat
    @ThunderCat Куратор тега PHP
    accountnujen,
    вместо "12345678" я буду делать $memcached->get("password")
    Занятно... а как (и главное откуда) в memcached будет попадать password?
    Написано
  • Можно ли обойти блокировки украинских провайдеров для моего хоста?

    ThunderCat
    @ThunderCat
    YrarrsPizza,
    Что у вас там за требования,

    Minecraft Bedrock Server
    Это не требования, это софт, у которого есть требования. Вот их можно привести, и возможно вам что-то посоветуют. Хотя не очень понимаю почему бы сразу не озвучить проблему в ключе "где найти сервера с конфигурацией ... на европейских площадках". Понимаю, что в России, как в лидере производства серверов и процессоров, наиболее выгодные условия, но возможно что и другие страны что-то смогут предложить...
    Написано
  • Как правильно организовать структуру базы данных интернет-магазина, если товары из разных источников?

    ThunderCat
    @ThunderCat
    Лев Салатов,
    Уточните, пожалуйста, почему связь через спровочную таблицу будет лучше? Ведь все равно будет WHERE city='1',

    Во первых будет WHERE `city_id` = 1, а в таблице cities уже будет id (в случае один-ко-многим).
    Во вторых, где у тебя будет храниться этот список с твоим spb? Что будет когда добавятся еще города?
    В третьих, это путь создания через внешние ключи, что при верном проектировании сохраняет консистентность базы при операциях с ней.

    Или плюсом будет связывание таблиц через отношения?
    Это и есть связывание через отношение, вопрос только в том какая форма отношений будет, один ко многим или многие ко многим. По сути 3 нормальная форма требует отделения сущностей в отдельные таблицы и связки через отношения.
    Написано
  • Как сделать пакетную обработку в 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
    ЕМНИП бОльшая часть проблем производительности докера завязана на ФС, которая останется(?) виндовой?
    Написано