Задать вопрос
  • Технология для миграции бд с использованием java?

    xukapy,

    Вполне возможно, что эта возможность есть.

    Тогда (около 6 лет назад), когда разбирались, нормальный вариант, как в том же mssql server, не нашли.

    Ну, стоит отметить огромный вклад разработчиков и postgrespro в качество документации.
  • Как исправить ошибку авторизации Json rpc?

    ganjo888, Если он туда не подходит, то вам нужно сделать либо:
    • сквозную аутентификацию на всех сервисах, т.е. чтобы однажды полученный токен на auth-сервисе подходил для всех, и это самый правильный вариант, лично для меня
    • на сервисах, которые вызывают другие, хранить специальную учетную запись для доступа к последним, но тут могут быть проблемы сопоставления активности пользователя, и т.п.


    Первый вариант предпочтителен, как по мне.

    Лучше всего использовать stateless (без состояния, сессии, куков и т.п.) API службы, для аутентификации использовать JWT с Bearer-токеном.
  • Как ускорить инсерты в базу sql?

    Да, в
    $valuesA[] = addValueQuotes($key)/*"'{$value}'"*/;
    ошибка, там нужно
    $valuesA[] = addValueQuotes($value)/*"'{$value}'"*/;
    .

    Что касается ON DUPLICATE KEY UPDATE, я бы сделал так:

    1. Залил бы во временную таблицу в БД (просто вставка);
    2. Перенес в основную таблицу все новое из временной, чего нет в основной;
    3. Обновил все что есть.


    Второй вариант, это дописать ON DUPLICATE KEY UPDATE к тому, что генерируется. На сколько я помню, MySQL так умеет.
  • Как ускорить инсерты в базу sql?

    burguy83, еще момент, код написан на коленке за считанные минуты, т.е. надо его проверить (хотя бы, закомментировав $sql = mysqli_query($mysqli, $qwery);) на корректность генерируемого SQL.
  • Как ускорить инсерты в базу sql?

    burguy83, здравствуйте.

    Я бы переписал ваш код вот так:

    <?php
    $batchSize = 10;
    $counter = 0;
    $valuesBatch = array(); 
    
    function addColumnQuotes($col) {
        return surroundQuotes($col, '`');
    }
    
    function addValueQuotes($val) {
        if (is_numeric($val) || is_bool($val))
        {
            return $val;
        } 
        else if (is_null($val)) 
        {
            return 'NULL';
        }
    
        return surroundQuotes(addslashes($val), "'");
    }
    
    function surroundQuotes($that, $with){
        return "{$with}{$that}{$with}";
    }
    
    foreach ($leiLEIRecordobj as $leiLEIRecords)
    {
        foreach ($leiLEIobj as $leiLEIs)
        {} //просто для примера что циклов много
    
        foreach ($leiLEIobj as $leiLEIs)
        {}//просто для примера что циклов много
    
        foreach ($leiLEIobj as $leiLEIs)
        {}//просто для примера что циклов много
    
        //И вот тут вставляю Ваш код в главном форейч
        $fieldsA = array();
        $valuesA = array();
    
        foreach ($arResult[$LEI] as $key => $value) 
        {
            if ($key == "lei:LegalAddress" || $key == "lei:HeadquartersAddress" || $key == "lei:OtherAddresses") 
            {
                foreach ($value as $address => $valueAd) 
                {
                    $fieldsA[] = addColumnQuotes($address)/* "`{$address}`" */;
                    $valuesA[] = addValueQuotes($valueAd)/*"'{$valueAd}'"*/;
                }
            } 
            else 
            {
                $fieldsA[] = addColumnQuotes($key)/*"`{$key}`"*/;
                $valuesA[] = addValueQuotes($key)/*"'{$value}'"*/;
            }
        }
    
        $fields = implode(',', $fieldsA);
        //var_dump($fields);
        $values = implode(',', $valuesA);
    
        $counter ++;
        $valuesBatch[] = "($values)";
        var_dump($valuesBatch);
    
        if ($counter == $batchSize)
        {   
            $qwery = strtr(
                "INSERT INTO `leis` ($fields) VALUES :text;\r\n",//Было "INSERT INTO `leis`($fields) VALUES ($values), :text",
                // зачем тут (выше) еще раз VALUES ($values)?
                array(':text' => implode(",\r\n\t", $valuesBatch))
            );
    
            $sql = mysqli_query($mysqli, $qwery);
    
            //Выведим конструкцию для визуальной проверки
            echo (strtr('<pre>:text</pre>', [
                ':text' => print_r($qwery, TRUE),
            ]));
    
            // Выполнить запрос или записать его в общую переменную-накопитель
            $counter = 0;    //<-это я так понимаю обнуление счётчика после 10 записей.
            $valuesBatch = array();
        }
    }
  • Как ускорить инсерты в базу sql?

    burguy83, если php умирает, то ему можно выставить таймаут:
    set_time_limit(0);,

    что скажет ему, что работать можно бесконечно. Это позволит убрать тот ад с ON DUPLICATE KEY.
    Еще можно грузить данные со временную таблицу (или просто специально выделенную для этих целей таблицу), затем переносить ее в нужную.

    Особенности временных таблиц-они привязаны к текущему соединению, т.е. нужно очень аккуратно все операции проводить.

    Если такие операции достаточно частые - можно сделать еще оду таблицу-буфер, которая выступает как временное хранилище ваших данных.
    Перед загрузкой делаете по ней TRUNCATE, к примеру и заливаете в нее данные. Дальше что-то подобное:

    INSERT INTO `leis` ($fields)
    SELECT $fields FROM leis_temp 
    LEFT JOIN leis l on [... условия соответствия]
    WHERE t.[СТОЛБЕЦ ID] is null
  • Как изменить формат даты публикации в дополнении Articles?

    Посмотрите по моей рекомендации, все что в cache-папке - оно будет перестраиваться.
  • В какой кодировке сохранить данные excel?

    PsychoCoder, Хм, я про json фигню написал.
    Я имел ввиду, вы их обрабатываете как текст.

    Суть моего предложения сводится к тому, чтобы сервер отдавал ссылку (или ID по которому можно скачать) на скачку и дальше было перенаправление на скачивание файла.
  • Как прочитать DBF в ASP.net core?

    roman_CH, могу порекомендовать
    • считать это в System.Data.DataTable, над ней можно делать сортировку и фильтрацию
    • использовать LINQ To Objects, что может быть дешевле по использованию памяти

    P.S.
    Я бы порекомендовал бы провести тест, сравнить быстроту обработки вышеуказанными методами и, вашим, что использовался ранее (не на .NET Core).
  • Какие есть готовые библиотеки на PHP для работы с IMAP и SMTP?

    YakovLitvin, SwiftMailer не умеет забирать почту, он ее отправляет. php-imap наоборот, подключается и обрабатывает почту.

    Использовал оба в достаточно нагруженной системе (параллельно работало человек 100, кажется.
    Плюс, фоновые процессы - проверка почтового ящика и отправка почты.
    Как я помню, я дорабатывал php-imap для своих нужд, но точно уже не скажу - это было в 2013-2014 годах.
  • Работа с большим объемом данных node mysql?

    Sratimon1, как получить ID можно прочитать вот тут - How can I Insert many rows into a MySQL table and .... На словах, innodb гарантирует непрерывное нарастание AutoIncrement, и получив LAST_INSERT_ID и количество строк, можно получить все ID.

    INSERT IGNORE очень сильно помог, спасибо

    Очень аккуратно с этой штукой, если что-то поменяется в поле, можно свежую запись потерять, оставив старую.

    Каким образом можно получить 50 000 записей из бд ?

    Это выгрузка? Если нужно просто получить 50000 записей - берете и читаете, лучше всего фоном. Я делал выгрузку ~ 50000 номенклатур из MySQL, но язык PHP. Строил excel. Сделал так - последовательно запускал фоновый процесс N раз, который выгружал следующие 5000 записей и строил по ним Excel. Процесс возвращал путь к файлу. Потом по полученному массиву имен файлов строил соответствующий Zip-архив с файлами и отдавал клиенту.

    В вашем случае можно и не бить, запустить процесс выгрузки, тот, когда закончит, куда-то сохранит ссылку на скачивание файла. Как-то так.
  • Как исправить проблему с неправильным .htaccess настройкой плагина babel в modx?

    Вообще - да. Честно сказать, плохо помню - но особых проблем с такими URL вроде бы не было. Так же постраничная навигация на главной у меня была в таком стиле (site.domain/language/?page=10) - и она работала.
  • Как проксировать java-приложение?

    fdroid, на сколько я знаю, разницы не должно быть.
    Может вот тут еще что поможет - https://habr.com/post/240495/

    P.S. А не пробовали проксирование через IIS? Просто, ради интереса? Сам хочу перейти на проксирование через nginx/HAProxy на ubuntu, избавиться от windows/IIS (мой стек может работать на linux, но развернут был на windows, по ряду причин, которые сейчас уже не актуальны)
  • Как вы пишите дебаг? Какие устоявшиеся методики существуют?

    TheTalion, Уровни логирования влияют на то, попадет ли данное сообщение в точку назначения лока (файловая система, консоль, SQL Server и т.п.) или нет.
  • Как уменьшить расход памяти в DataGrid у WPF?

    Никита, вообще, сортировку можно сделать и на сервере, так будет правильнее, если Вы потащите данные по страницам.

    А по поводу памяти, попробуйте профайлер, чтобы проанализировать, что занимает память.
    Так же, подозреваю, загрузив часть данных, скорее всего, память будет расходоваться не так сильно.
    Мы использовали стандартный профайлер в Visual Studio, профайлер от JetBrains и Telerik.
  • Насколько сложно сделать рефакторинг проекта и переписать код с C# на Python/Java?

    RGoldvarg, все зависит от ваших требований, в общем-то.
    Как правильно уже подметили, с .NET Core появилась масса возможностей, можно спокойно работать на Linux в том числе.
    А настолько адекватно оставлять Backend на C# в 2018 году? =)

    На мой взгляд, объективно тут не ответить, можно высказать мнение. Мое мнение состоит в том, что .NET сейчас активно развивается и дает нам не мало возможностей. При этом, это платформа уже с историей и проверена временем, про нее нельзя сказать, что она в стагнации или стремится к ней. С .NET Core web стал оторван от IIS, что весьма большой шаг в сторону платформонезависимости.

    Смотрите свой бэкэнд, смотрите его зависимости, могут ли они сейчас в .NET Core и т.п.
    Переписать на новый ЯП может оказаться просто дорого, да, вы получите продукт на вашем ЯП, но разница в том, что вы получите НОВЫЙ продукт, со своими болячками и прочим. Поэтому, подумайте, оцените риски и принимайте решение.
  • Modx не входит в админку как исправить?

    Юрий Щеголихин, решилась проблема?
    Если нет, только на выходных смогу связаться
  • Modx не входит в админку как исправить?

    Юрий Щеголихин,
    Версия modx какая? Скиньте скриншот строки пользователя из phpmyadmin.
    меня интересует, что произошло, что при входе выдаёт ошибку 500

    Да все что угодно может произойти.
    Что в логе, смотрели?
  • Modx не входит в админку как исправить?

    Юрий Щеголихин, тут только логи помогут, я ничего не могу сказать более, чем написал выше.
    Очищайте кэш. Пробуйте еще раз войти.
    Можно попробовать через API добавить нового пользователя, зайти из под него.

    P.S. заведите документ с паролям к сайтам и "положите в сейф", чтобы завтра такого не словить.
  • Как редактировать несколько записей одной Entity в одной форме?

    s0lar, https://gist.github.com/alexkuznetsov/5d5cbac7666c...
    . Вывод формы делается по аналогии с этим кодом:
    {{ form_start(form) }}
        {# render the task's only field: description #}
        {{ form_row(form.description) }}
    
        <h3>Tags</h3>
        <ul class="tags">
            {# iterate over each existing tag and render its only field: name #}
            {% for tag in form.tags %}
                <li>{{ form_row(tag.name) }}</li>
            {% endfor %}
        </ul>
    {{ form_end(form) }}