Задать вопрос
  • Еще один вопрос про абстрактные классы на примере Laravel?

    @Vitsliputsli
    В данном случае можно было и не объявлять его абстрактным, но вот так разработчикам захотелось, чтобы явно указать программисту, что класс не следует использовать напрямую.

    Я бы сказал, что в данном случае - обязательно объявлять класс абстрактным и разработчикам необходимо было это сделать, чтобы явно указать программисту, что класс не следует использовать напрямую.
    Есть техническая реализация, а есть логическая, по-логике здесь нужен абстрактный класс, чтобы показать что этот класс не полная реализация, а некий шаблон на основе которого нужно будет делать свои классы. И здесь это очевидно благодаря одному слову abstract без написания многострочных комментариев.
  • Как правильно лоигровать ошибки php?

    @Vitsliputsli
    kolomat, так к слову, пользователь может захотеть хоть код писать, и ему это надо обеспечить. Но, это не значит, что нужно брать код пользователя и выполнять на сервере. Пользователь пишет код на своем DSL, а мы пишем парсер, который его обрабатывает и компилирует в легитимные конструкции уже исполняемого языка. Тоже самое с вашими конфигами, тоже самое с любыми данными приходящими от пользователя, они должны быть обработаны и проверены, для исключения любого внедрения недопустимого кода.
  • Возможно ли закрыть файл, открытый через include?

    @Vitsliputsli
    Aspirant555, вряд ли. Код из файла не просто "лежит" в нем, он встраивается в текущее тело программы - классы, константы, объявления функций. Попытаться выкорчевать их оттуда не тривиальная задача, поиск всех необходимых для выгрузки элементов, а также зависимых от них, потребует слишком много времени. А делать это придется монопольно, останавливая весь скрипт. Не говоря уже о том, что к памяти потом придется какой-то дефрагментатор прикручивать.
    Поэтому такое возможно только на изолированных модулях, а при таких раскладах проще, быстрее и надежнее это решать архитектурно, разными процессами. Да и демону большие фреймворки не нужны, а fpm умеет шарить код между своими воркерами.
    Даже скомпилированные в машинный код модули не всякий отважится выгружать в runtime, чего уж говорить про высокоуровневый байт-код.
  • Mac Mini M2 базовая версия подойдёт ли для Python Backend разработки?

    @Vitsliputsli
    возможности по апгрейду памяти в данной модели - нет

    Отличный аргумент, чтобы вообще не брать такую машину.
    Комуто до 22 года хватало 8Г, по мне уже лет 10 назад 16 это минимум, тем более если придется работать с виртуалками, а если и проект большой, то и 32Г может не хватать. Не придется - отлично, но заранее себя ограничить - плохой выбор. Опять же, задачи у всех разные.
  • Как открыть дополнительное окно терминала через SSH?

    @Vitsliputsli
    Как бы графику прокинуть можно и через ssh, не проблема. Другое дело, что WiFi-autopwner - это просто скрипт и графика здесь вообще не при делах. Главное, что в чем ошибка уже написано.
  • Как пробросить SSH на сервер без внешнего ip?

    @Vitsliputsli
    А в чем проблема подключиться по SSH через промежуточный хост? - используйте jump хост.
    Недопустимо держать ключ SSH на промежуточном хосте? Пробросьте порт через ssh.
  • Какие характеристики ноута для начинающего?

    @Vitsliputsli
    rPman, имелось ввиду не спровоцирует, а не будет мощных отвлекающих факторов. Понятия не имею, что может вызвать интерес, но хоть время другое, люди все те же.
  • Какие характеристики ноута для начинающего?

    @Vitsliputsli
    rPman,

    Я помню, был тем самым ребенком, которому купили по минимуму

    Быть может поэтому появился интерес как это все работает, когда стало неинтересно играть в 2 тормознутые игры?
  • Где можно показать свой код?

    @Vitsliputsli
    Ответ дан, но так к слову, с чего вы все взяли, что код 4х циферный, вполне возможно, он такой пока 4 цифр хватает, как перестанет хватать, он станет 5и циферным.
  • Как сделать один запрос вне зависимости от количества переходов?

    @Vitsliputsli
    Елена Кермояк,
    проблема с прибавкой ключей на следующего босса. То есть у меня всего 100 ключей например и когда пользователь бьет например босса номер 5, а другой(ие) разных, то получается так что добавляется через раз дополнительный ключ на какого-то из этих боссов

    Вы реально считаете, что кто-то что-то понял из этого повествования?

    В общем, скорее всего обычный race condition. А решается оно пониманием того, где это состояние, поэтому обвешивать блокировками нужно не update. Блокировать БД нужно перед проверкой значения и снимать блокировку после обновления, чтобы предотвратить изменение БД в этот промежуток. А проверку вы нам почему-то не показываете...
    Либо решить это без блокировок (что разумеется гораздо лучше), например, вставив проверку значения в UPDATE. Например:
    update payments set amount=amount-1 where (amount-1)>=0

    Здесь у всех записей amount уменьшаем на 1, но только в том случае, если результат будет положительным.
  • Почему идет высокая загрузка CPU?

    @Vitsliputsli
    Valdis12, зомби не расходуют CPU, они уже мертвы, это лишь признак того, что процессы нормально не завершаются, разбирайтесь почему.
    Что касается CPU, то что непонятно? По выводу top видно, что glances и cadvisor сожрали 30%, остальные 20% сожрала node с товарищами. Вот и ваши 50%.
    В htop другая картина, потому как он каждый выше указанный процесс разбил на отдельные потоки. В нем кстати тоже можно включить показывать их вместе.
  • Можно ли узнать ip и др.?

    @Vitsliputsli
    По выданному СОРМ макадресу/ip получают у провайдера адрес, а он обязан знать его, и не важно как его сеть устроена. То что, где-то на домах не висят номера, не значит, что их у них нет, и кто нужно будет их знать, а провайдер вряд ли будет рисковать подключая кого-либо без адреса.
    WiFi имеет ограниченный радиус действия, прошерстить соседей не составит труда и вряд ли они успеют/догадаются поменять свой адрес wifi.
    И это в рядовой ситуации, без особых сложностей.
  • Расскажите про настройки redis timeout и ошибку подключения к redis?

    @Vitsliputsli
    Александр Панков, если понятно, то что тогда непонятно? Это отвечает почти на все ваши вопросы:
    1) Как получаются эти клиенты, я думал что на каждую джобу будет свой плодится, а нет, а как тогда, как оно с php-fpm работает?

    Весь смысл persistent connections в том, чтобы не плодить соединения. Скорее всего каждый процесс php-fpm использует только 1 соединение, как именно, тут уже читайте доку по predis, если интересно.

    2) Нормально это вообще, что timeouts 0? мне кажется нет

    Очевидно, что да, если у вас соединение постоянное.

    3) Почему ошибка вообще возникала? если логически подумать, то php-fpm стучался к редису и открывал соединение, получал данные и джоба успешно делала свои дела, спустя 300сек ЭТОТ ЖЕ pid php-fpm стучался в редис для очердной задачи, а соединение уже было закрыто и не мог достучатся, фейлился, так выходит? а что же тогда новое соединение не открыть, зачем старое юзать... (поэтому в эксперименте выше всегда 5 клиентов, когда джобов 50+ в моменте, тк юзаются старые подключения, верно мыслю?)

    Верно. Почему не открыть новое? Потому что рассчитывают что таймаут будет установлен в 0. Зачем прятать ошибку и неявно замедлять работу? Если вам хочется, вы можете сделать реконнект сами явно.

    4) Какое вообще правильно решение в этой ситуации? (да, я понимаю, что многого не понимаю, конкретно как оно там под капотом устроено, вот и прошу объяснить)

    Правильное решение зависит от задачи и цели которой хотим достичь. Возможно, для вас правильным решением будет не использовать predis, т.к. он вам скорее всего не нужен.
  • Расскажите про настройки redis timeout и ошибку подключения к redis?

    @Vitsliputsli
    Александр Панков, прочитать доку по predis.
    Например, если открыть FAQ, то один из первых вопросов:

    Does Predis support UNIX domain sockets and persistent connections?
    Yes. Obviously persistent connections actually work only when using PHP configured as a persistent process reused by the web server (see PHP-FPM).
  • Расскажите про настройки redis timeout и ошибку подключения к redis?

    @Vitsliputsli
    Скорее всего, predis переиспользует открытые соединения, соответственно, если redis по таймауту будет закрывать простаивающие, predis в какие-то моменты будет читать из закрытого соединения.
  • Обьсяните пожайлуста разницу между REST API и SQL-запросами?

    @Vitsliputsli
    Только первый просит x, а второй y. При этом x=fn(y).
  • Нужно ли просить договор?

    @Vitsliputsli
    Jacen11, а вы судились о невыплаченной премии? Или хотя бы ваш знакомый? Не беря тех, кто судится постоянно и со всеми.
    Суды не веселая развлекуха, даже с учетом что чаще всего они на стороне работника. Да и на новое место работы устраиваться имея суды с работодателем скорее всего будет не просто.
  • Почему возникает PHP Notice при запросе get_the_terms?

    @Vitsliputsli

    Видимо в некоторых случаях global $post пустой

    Точнее, $post в каких то случаях не объект, может не инициализирована, а может там массив или еще что-то.
  • Из-за чего возникает данная ошибка в консоли openserver?

    @Vitsliputsli
    А что именно не понятно, если RecursiveDirectoryIterator говорит "отказано в доступе"?
  • Как оптмизировать INSERT-SELECT SQL запрос?

    @Vitsliputsli
    А что за странные массовые копирования данных, которые нужно делать постоянно, да еще и быстро? Быть может надо разобраться зачем это вообще надо?