• Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Алексей Черемисин, а внутри контейнера нужно делать своего юзра везде? как я вижу там (возможно не везде) вход в контейнер идет от рута, нужно ли это как-то переопределять? (для прода, когда нет volumes)
    Написано
  • Расскажите про настройки redis timeout и ошибку подключения к redis?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Vitsliputsli, спасибо, но это и так понятно, на мой взгляд, это не отвечает ни на один мой вопрос.
    Написано
  • Расскажите про настройки redis timeout и ошибку подключения к redis?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Vitsliputsli, спасибо за комментарий, узнать бы конечно точно, как это все работает
    Написано
  • Как победить ошибку has been attempted too many times в laravel?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Дмитрий, а ннет, ошибка из редиса, которую пока не могу расшифровать
    649df50ec4da4162975953.png

    и вот после нее через 90сек уже ошибка джобы и так стабильно во всех случаях фейла
    Написано
  • Как победить ошибку has been attempted too many times в laravel?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    как я понял это ОШИБКА ВТОРОГО запуска (когда максимально возможно один трай), а первый запуск грохается в тишине. понатыкаю завтра логов, буду смотреть до куда код проходит..
    но все равно странно должен жн экзепшен быть человекопанятный, а не тишина
    Написано
  • Как победить ошибку has been attempted too many times в laravel?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Дмитрий,
    class CampaignRenameListener implements ShouldQueue
    {
        use HasAdsToken;
        use InteractsWithQueue;
    
        public function __construct(
            protected Client $client
        ) {
        }
    
        public function handle(CampaignRenameEvent $event): void
        {
            $token = $this->getTokenByCampaign($event->campaign);
            if (!$token) {
                throw new InvalidArgumentException(__('Token does not exist'));
            }
            $this->client->setToken($token);
    
            // вот тут стучусь в сторонние апи (у клиента таймаут 7секунд)
            $this->client->postRename()->request([
                'advertId' => (int)$event->campaign->wb_id,
                'name' => $event->newName
            ]);
    
        }
    
        public function failed(CampaignRenameEvent $event, Throwable $exception): void
        {
            $event->campaign->update(['name' => $event->oldName]);
        }
    }


    самое странное что валятся не все, а меньшая часть, как-будто апишка сервиса не отвечает, но при этом у меня должна быть ошибка выведена, а я ее не вижу, я вижу has been attempted too many times
    Написано
  • Как победить ошибку has been attempted too many times в laravel?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Дмитрий, да.
    Ну вот все описал, привел стектрейс и я не вижу почему задача не выполняется, поэтому и пришел сюда
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Алексей Черемисин, спасибо.
    А подскажите вот какой вопрос, не могу у себя его уложить в голове.
    Вот я работаю над проектом, на локалке он у меня в докере, пускай будет на проде тоже в докере.

    На прод надо доставлять контейнер с кодом внутри, а не монтировать его с хост машины.

    Но в течение дня я могу пушить 10-15-20 коммитов, все они меняют код и поэтому контейнеры надо пересобирать, верно же?

    А как должны тогда менять теги образов, не понимаю, сейчас я руками меняю их и перезаписываю один и тот же тег(образ) по много раз, но это же не правильно, нужно прям честное версионирование, в каком месте и как менять теги по 10-20-30 раз за день?
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Алексей Черемисин а их не взламывают , от какого юзера должны работать контейнеры?

    И опять же, не могу найти объяснения на счет баз данных и докера
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Александр Талалаев, чот не могу нигде туториал нагуглить, везде на рута все ставят и все.. максимум www-data. Не поделитесь годными гайдами?
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Александр Талалаев, типа на отдельном сервере прям крутят и база с приложением по сети общается?
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Александр Талалаев у меня выходят вот такие больше докерфайлы (пугают меня) если собирать для стейдижнга, хз нормально ли это, коллег нет, чтобы спросить..
    1) ставим композер и качаем все пакеты
    2) ставим vite и собираем ассеты для фронта
    3) ставим php-cli и extensions
    4) и в него уже из 1 и 2 пункта копируем файлы + файлы ларавела
    6488db04ea1fb726007260.png

    Да и база (mysql/postgres) в докере все говорят - не надо, спрашиваю почему.. и не получаю внятного ответа, ну не надо так не надо значит
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Александр Талалаев не очень понял пункт 2, прям весь, с подпунктами, можно прям на примере..
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    на локалке докер, приватный реджестри на селектеле, стейджинги через докер поднимаю, с базой внутри контейнереа (все руками без автоматизации, максимум Makefile), на проде все нативно, без докера. Хотя собирать контейнеры мултистейджингом для меня тоже оказалось странно, куча телодвижений, особенно когда фронт и бек разные, тут исключить папку, тут cобрать фронт через vite, тут его подклбчить, все за собой почистить, чот туда-сюда погонять, с композером и его кешем тоже приколы всякие, чот геморрой такой кажется.. хотя пишется один раз и все... это да.

    а так на 99% проектов git pull

    rsync - так учебный проект на коленке, разворачиваю супер простой crud, просто учусь делать это "как взрослые", на проекте пока даже репозитория нет
    Написано
  • Нужен ли отдельный linux user для сайта?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Спасибо за комментарий, а можете на примере показать, не очень понял про
    Обязательно нужен отдельный пользователь для работы веб-сервера, субд, php-fpm, redis итд - каждому из них выдать доступ только к тем директориям и файлам, к которым им доступ необходим


    Вот зашел я первый раз на сервер (под рутом)
    - ставлю веб-сервер nginx, поставил, создаю юзера webserver и в конфигах nginx говорю ему запускаться от этого юзера webserver
    - ставлю php-fpm, поставил, создаю юзера phpfpm и в конфигах пула говорю ему запускаться от этого юзера phpfpm
    - а как с mysql не могу нагулить (или вы имеете ввиду внутренний юзер не должен быть рут? (если да, то тут я все понимаю, всегда создаю отдльного для своей БД)
    - а redis как, можно пример, редиска же "в мир" мир никак не смотрит, я даже аутенитифкаци ни разу включенной не видел и на докладах говорили что не нужно особо это...

    Просто вот nginx от "первого" юзера, fpm от "второго", файлы сайта лежат от "третьего"..
    как это заставить все работать потом, через общие группы? сложнаааа
    Написано
  • Обработка 445 задач в секунду на Laravel?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Иерокопус Таманский, похоже на то, да.

    Просто опыта мало, нагуглил сегодня что MySQL может вставлять 40.000 записей в секунду, простым инсертом (массовым конечно)

    И даже может вставить 247.000 в секунду если через батч файл

    Эти цифры даже близко не мои 445 строк в секунду, поэтому проблема меньше, чем мне показалось.
    Скорее всего телодвижений потребуется минимум.

    Просто буду как-нибудь писать данные в tsv файлы и например раз в минуту персистить эти данные в базу, реалтайм не обязателен.
    А я уже нагородил себе какие-то сервисы на go, какой то master-slave и тд и тп

    Тут главное минимизировать количество подключений, потому что 445 +1 подключений для MySQL вроде бы многовато, по дефолту 100 стоит
    Написано
  • Обработка 445 задач в секунду на Laravel?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Дмитрий, теперь понимаю, что дурацкий. Писать буду короткий кортеж из 8 колонок, int и timestamp

    Но нужны будут индексы, тк делать select нужно будет с условиями когда-то там потом
    Написано
  • Обработка 445 задач в секунду на Laravel?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Дмитрий, на счет «апи большого брата»то кстати да, но в теории «на словах» все должно работать и пока не думаем, что сторонний сервис как-то откажет.

    Когда нужны данные:
    Да нет, я бы не сказал что сразу, 90 процентов действий это задачи из очереди, выполняются в фоне, клиент заходит и видит только лишь графики, те результаты по факту, ну иногда уведомления получает, когда данные с этих графиков уже какие-то странные, но это детали бизнес-логики.
    Нет, данные сразу не нужны, я пока н понимаю может ли MySQL писать 445 записей в секунду, по ним строить индекс и еще изредка отдавать ответы на select..
    Написано
  • Как организована аутентификация через сторонний сервис?

    PankovAlxndr
    @PankovAlxndr Автор вопроса
    Дмитрий, спасибо за ответ. Пойду гуглить дальше. Идея на каждый запрос обращаться в главный сервис чтобы проверить токен - убъет мое приложение. (Пункт 3)
    Очень узкое место. Вдруг главный не отвечает, вдруг тайм-аут 29сек от него, вдруг еще чего, а у меня пользователи так и останутся висеть, все их запросы будут разворачиваться по тайм-ауту в самом начале при валидации токена, ну нафиг такой подход, буду искать новый, ходить каждый раз за валидацией токена куда-то далеко не вариант.

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