Задать вопрос
  • Как можно создавать воркеров и балансировать Telegram бота?

    @Vitsliputsli
    Разберитесь, где точно не хватает производительности. Если это MySQL, то в первую очередь нужно разобраться, что можно оптимизировать в ней. Что именно проседает? И, если уж совсем ничего нельзя сделать, то тогда займетесь слейвами или вообще шардированием.
    Rabbitmq поможет не ждать базу скриптам на вебхуках, но если база перегружена, то очередь будет копиться.
    То, что точка доступа одна, это не означает, что там бутылочное горлышко. Нет резерва при отказе - да, но не факт что там все перегружено.
    И, если вебхуков так много, есть ли в них тогда смысл? Не проще ли, забирать все новые сообщения и делать пакетные вставки в базу, а не по одной штуке.
  • Как объединить 2 массива с условием, что 2 и 5 значение будут со второго массива?

    @Vitsliputsli
    focusss, либо так:
    $newArr = [$arrOne[0], $arrTwo[0], $arrOne[1], $arrOne[2], $arrTwo[1]];
    либо опишите алгоритм, которым нужно руководствоваться, без него можно бесконечно гадать.
  • Как вырасти до системного администратора?

    @Vitsliputsli
    Игорь,
    знал бы ты, сколько систем оказалось похоронено, потому что знал только сисадмин. ))

    Знаем таких, их полно на любой работе, тех кто все зацикливает на себя, строит все из говна и палок и постоянно бегает вокруг этого, подсовывая новые палки, и когда он исчезает, все разваливается от легкого дуновения ветерка.
    Это говорит лишь о низкой квалификации и боязни, что его заменят. От таких стоит держаться подальше.
  • Дописать в файл json и прочесть его php?

    @Vitsliputsli
    Immortal_pony, для интеграции с внешними системами лучше подготовить API, а не подстраивать свое хранилище под них и позволять им напрямую лазить в него.
    Товарищи склоняющие к CSV вместо json исходят из того, что так им привычнее. Только вот сейчас 2022 и формировать отдельные строчки в логе как json это нормальная, обычная практика, и как софт уже может формировать в таком виде логи, так и системы организации логов, тот же logstash могут читать их.
    А учитывая, что автор пишет построчно, а при чтении готов читать только часть, ту которая последняя после ротации файла, то на мой взгляд писать лог отдельными строками внутри которых json - самый оптимальный вариант.
  • В чем ошибка применения функции sleep()?

    @Vitsliputsli
    Korneliy, вопрос в том, что стоит в BETWEEN, если возможно, то лучше чтобы там стоял id, если это невозможно, то по тому полю, которое в BETWEEN должен быть построен индекс.
  • В чем ошибка применения функции sleep()?

    @Vitsliputsli
    Korneliy, вот эта штука:
    (BETWEEN 1 AND 50000, BETWEEN 50000 AND 100000 и так далее).
    делается циклом for в php, и не нужно множество файлов.

    К четвертому require_once скорость опять упала до черепашьей

    Здесь нужно понимать, что вы запрашиваете, а может и как обрабатываете.
    Скорее всего, как я уже писал:
    Если используете BETWEEN и блоки, то вероятно идете по полю без индекса, из-за этого при каждой итерации он перечитывает всю таблицу сначала до нужной позиции. Используйте primary key в between, либо стройте индекс по фильтруемому полю.
  • Полнотекстовый поиск PostgreSQL внутри JSON, индекс внутри JSON?

    @Vitsliputsli
    rPman, ну т.е. под закачиком понималось лицо ответственное за компонент с основной базой данной. Тогда да, либо договариваться с этим лицом, либо дублировать у себя базу в том виде, в каком она будет соответствовать требованиям, опять же если это допустимо политикой.
  • Полнотекстовый поиск PostgreSQL внутри JSON, индекс внутри JSON?

    @Vitsliputsli
    rPman,
    я понимаю, существуют задачи (выдуманные) когда заказчик хочет чтобы база данных - это железобетонно

    Можете пояснить? Как заказчик связан с технической реализацией?
    А если вдруг он решает все вопросы по технической реализации, то тогда и проблемы с ней надо адресовать ему.
  • В чем ошибка применения функции sleep()?

    @Vitsliputsli
    Korneliy,
    Но остановилось, сделав где-то 2/3 от общего объёма.

    тогда скорее всего проблема в коде, либо чтото залочилось в базе, посмотрите локи, да и просто долго выполняющиеся запросы на ней.

    Мысль пришла в файле сделать последовательно три копии этого же файла. В первой с помощью BETWEEN прописать первую треть, во второй - вторую, в третьей - третью.

    ну хоть так, если не знаете, как сделать такой цикл в коде.

    Вот только надо понять, что МЕЖДУ этими копиями прописать. Может, тот же самый sleep...

    да ничего не надо, уж между запусками 3 скриптов точно ничего не надо.
  • В чем ошибка применения функции sleep()?

    @Vitsliputsli
    Korneliy, надо понимать что делают sql запросы (да и php тоже). При простом добавлении данных сильной деградации быть не должно.
    Если используете BETWEEN и блоки, то вероятно идете по полю без индекса, из-за этого при каждой итерации он перечитывает всю таблицу сначала до нужной позиции. Используйте primary key в between, либо стройте индекс по фильтруемому полю.
  • В чем ошибка применения функции sleep()?

    @Vitsliputsli
    Korneliy, не усложняйте раньше времени, не заморачивайтесь ни sleep, ни блоками, запустите ваш скрипт для начала просто в cli, проверьте отрабатывает ли он там.
  • В чем ошибка применения функции sleep()?

    @Vitsliputsli
    Korneliy, sleep никак не поможет вам с 504 ошибкой nginx, если вы про это.
  • В чем ошибка применения функции sleep()?

    @Vitsliputsli
    Korneliy, nginx ни с чем не справляется, он просто ждет определенное время и если не получил ответ от php выдает эту злосчастную ошибку. А php продолжает в это время работать, как и mysql.
    Для вашей задачи nginx вообще не к месту, а запустить скрипт php из консоли в данном случае проще, чем делать это через веб.
    Блоки нужны для другой цели, чтобы СУБД не повесилась от огромного кол-ва работы которую вы на нее взвалили. Чтобы другие процессы могли ей пользоваться свободно, пока идут такие крупные чтения/вставки. Троттлинг, sleep, который "ставит выполнение php на паузу" тоже для этих целей. Поэтому размер блоков и величину троттлинга нужно подбирать экспериментально.
  • Имитация ООП в C, где ошибка?

    @Vitsliputsli
    Василий Дёмин, я думаю автору вариант с костылями тоже подойдёт. Как минимум, чтобы посмотреть какие вообще могут быть варианты. Так что кидайте их, всем будет интересно.
  • Дописать в файл json и прочесть его php?

    @Vitsliputsli
    SteepNET, бд не панацея, которая спасёт от всего и вся. Если речь про 10Мб в год, то действительно стоит задуматься о том, так ли необходима бд. Тут проще прочитать и записать файл целиком. Опять же, есть sqlite.
    Либо хранить в json отдельные события лога, а писать-читать построчно. А потрошение json и запись отдельных кусков не лучшая идея. Но мало того, что сама идея плохая, она ничего полезного не даёт, если сравнить с записью построчно.
  • Дописать в файл json и прочесть его php?

    @Vitsliputsli
    SteepNET, можно, очевидно просто добавьте символ новой строки при записи.
    Только зачем? Что будет дальше? Комментарии в json?
    Это все превращается, как написал FanatPHP, в "ковыряться грязными ногами в джейсоне".
  • Дописать в файл json и прочесть его php?

    @Vitsliputsli
    Immortal_pony, если вновь записываемые json настолько независимы от предыдущих, что мы предыдущие даже не смотрим, зачем тогда их объединять в один json? Почему бы не писать их отдельными строками? Каждую строку при этом можно будет обрабатывать отдельно. Собственно как это и делается в системах логирования. Смысл расширять дозаписыванием со странными телодвижениями, когда при чтении придется читать все скопом?
    И когда автор запустит свою шайтан-машину и она насоздает записей, через некоторое время он опять придет с новой задачей: не перезаписывая весь файл удалить из json несколько первых объектов.
  • Дописать в файл json и прочесть его php?

    @Vitsliputsli
    Immortal_pony, вообще, то что хочет автор, очень похоже на логирование, а при этом в каком формате будет дозаписываемая строка json, csv или еще что, это как удобнее. Но ломать дозаписывать json решение так себе.
    SteepNET, если вам легче будет работать с json - берите json. Записывать его не намного сложнее, не так уж и много потеряете на генерации json. Но это должны быть независимые json в каждой строке.
  • Как ускорить работу Apache + FastCGI?

    @Vitsliputsli
    sarkisssik, именно так, сколько не купи, всегда будет мало. Поэтому прежде чем докупать процессоры, нужно посмотреть что там крутится на бедной СУБД, что ее так напрягает. Раз она постоянно в таком состоянии, то достаточно посмотреть какие запросы выполняются прямо сейчас и проанализировать для начала их.
  • Дописать в файл json и прочесть его php?

    @Vitsliputsli
    FanatPHP, метафора, конечно, звучная. Но то, что дозаписать json не получится, автор уяснил. Тогда о каком ковырянии json идет речь?