• Почему в yii2 очередях отрабатывают только триггеры: Queue::EVENT_BEFORE_PUSH и Queue::EVENT_AFTER_PUSH?

    Zhuravljov
    @Zhuravljov
    php-программист
    Отправка и получение сообщений происходит в разных процессах. Вы вешаете обработчик EVENT_AFTER_EXEC в процессе, который отправляет сообщения. Воркер-процесс про это ничего не знает, а именно он триггерит EVENT_AFTER_EXEC.

    Оформите обработчик события в виде Behavior-а ( по типу LogBehavior), и подключите его в общий конфиг. Это решит проблему.
    Ответ написан
    7 комментариев
  • Как понять докер, если ничего не понятно?

    neuotq
    @neuotq
    Прокрастинация
    С Докером все просто, нужно только немного повернуть устоявшуюся логику в мозгах.
    Основная суть и идея это запуск каждого приложения (php, mysql и тд) в своем контейнере. При этом сам php будет думать что запущен как всегда в обычной полноценной ОС. Поэтому контейнер собирают так, чтобы удовлетворить минимальные требования программы которую он будет содержать.
    Вот так ты и запускаешь кучу контенейров и у тебя выходит сухогруз(у докера там кит) с контейнерами. Зачем это все? Для облегчения администрирования и обновления ПО, а так же для минимизации издержек при глюках/падения какой-либо программы.
    Все контейнеры максимально независимы друг от друга, при этом есть механизм когда контейнер завист от другого. Например контейнер phpmyadmin, нет смысл запускать без контейнера mysql или mariadb, работать он не будет.
    Общение происходит в основном через сеть, поднимается внутренняя сеть. Так же конечно через диск, все предусмотрено.
    Когда все сделано как нужно, с системного администратора снимается гигантский труд по отслеживанию обновлений, совместимости этих обновлений и тд.
    Нужна тебе версия php5.6, запустил коннтейнер с ней, нужна php7.1, запустил его, при этом не нужно никаких приключений с обновлением кучи пакетов, возможных конфликтов с другими нужными программами и тд.
    Так же удобно решаются вопросы масштабирования, появляются мелкие удобные бонусы по дополнительной автоматизации , уменьшаются риски падения ОС в целом, падает если что только контейнер и тд и тп, в результате есть реальная возможность даже небольшим проектам добиться у себя около нулевого даунтайма.
    Вот еще послушай Кирилл Мокевнин из Hexlet пытается понятным языком рассказать что это и зачем. И кстати он делает упор на понимания зачем понадобилось думать и какие проблемы решали когда пришли к Докеру, это ключ к пониманию всего другого.
    PS кстати и сам Hexlet крайне советую, они наверное лучшие в рунете для начинающих программистов
    Ответ написан
    1 комментарий
  • Как поступить с pull request если его не приняли?

    b0nn1e
    @b0nn1e
    Alcohol & Ruby on Rails
    git reset --soft HEAD~1
    <вносите свои правки>
    git commit -am "Commit message"
    git push -f
    Ответ написан
    Комментировать