Павел
Ну если речь, как создать редис клиент из дсн симфони стайла
Алексей
несколько прайс-листов кэшировать, что б за ними не бегать во внешний сервис
The Ant
Ну сделай отдельный симпл кеш тогда и не парься
Павел
Ну сделай отдельный симпл кеш тогда и не парься
В этом случе симфонийский чуть поинтереснее через колбэк
Павел
+ уже насроенный, бери да юзай))
Павел
Можно конечно свою абстракцию добавить
The Ant
это либа такая ?
Это пср такой, и есть гайды как в симфе настроить
The Ant
В этом случе симфонийский чуть поинтереснее через колбэк
Он перегруженный какой-то ) Хотя в целом пойдет ага
Алексей
Но честно говоря у вас больше на какую то обертку над кэшэм похоже
да, получилась обёртка 😅 ещё хотелось не из каждого контроллера дергать по соединению, а в итоговом варианте получить сервис с персист соединением
Павел
Павел
Там 2 метода get, да delete
Павел
Но get с колбэком
The Ant
Он менее нагруженный чем пср))
Так там 2 пср, один замудреный, второй как нативный мемкеш, простой.
Алексей
Делаю так use Symfony\Component\Cache\Adapter\RedisAdapter as SymfonyRedisAdapter;
1ый вариант был именно такой , потом решил "вынести логику из контроллера" но вышла обёртка. в общем и целом спасибо всем
The Ant
Шота сомневаюсь, что 2 псра есть
С телефона ппц удобно, но я попробую 😁
Павел
С телефона ппц удобно, но я попробую 😁
Да, мой косяк. Там 2 их. Но все равно симфонийский еще меньше интерфейс))
Павел
Просто без колбэка нужно самому писать эту обвязку всю, есть или нет ключа, или он истек
The Ant
несколько прайс-листов кэшировать, что б за ними не бегать во внешний сервис
Клади в файловый кеш или мемкеш. В редис большие файлы вообще не очень. Особенности редиски. Он оптимально работает до 100байт значений. Потом рпс снижается экспоненциально.
The Ant
Хотя если у тебя там 2 раза в день этот файл читается то пофигу ) Ну просто помнить что редиска очень привередлива к размеру данных, которые достает.
Aleksandr Khristenko
Павел
Хотя если у тебя там 2 раза в день этот файл читается то пофигу ) Ну просто помнить что редиска очень привередлива к размеру данных, которые достает.
Тип мемкэш так не страдает от размера? Поидее вроде логично, что чем больше данных, тем сложнее их отдавать, тем больше расходов = меньше рпс
Павел
Там еще в сифониевском кеше есть защита от cache stampede
По идее да, на практике у меня почему то были паралельные вычиления :( пришлось лимитером все это дело ограничивать
Aleksandr Khristenko
По идее да, на практике у меня почему то были паралельные вычиления :( пришлось лимитером все это дело ограничивать
В смысле паралельные вычисления? Там ведь и лок есть на время вычисления значения.
Павел
В смысле паралельные вычисления? Там ведь и лок есть на время вычисления значения.
Ну всмысле я думал, что если N машин обратится к одному ключу (кэш общий), то будет только первая успевшая вычислять, а остальные получат потом результат. Но у меня почему то все N ложили базу)))
Павел
Мб что я тупанул, но в итоге разруливал локером
Павел
Значит у тебя блокировка не работала.
Да, это я понял, но почему хз, там вроде нет настроек, все по дефолту
Михаил
Клади в файловый кеш или мемкеш. В редис большие файлы вообще не очень. Особенности редиски. Он оптимально работает до 100байт значений. Потом рпс снижается экспоненциально.
а если приложения на нескольких нодах работает? Плюс к тому держите не супер хорошая идея использовать локльный кеш с большими данными - просто будуте утекать или по физической или по оперативной памяти.
Михаил
Но всё таки я бы так не извращался и для дебаунса нагрузки использовал редис. Или если свести сложные запросы в серию kkv - то какую-нибудь cassandra
Pavel
Подскажите пожалуйста, делаю сейчас отдельный бандл и у него внутри есть твиг шаблоны, не могу понять как мне прокинуть пути на шаблоны в конфиге внутри бандла и снаружи. В доке написано что бандлу выдается алиас основанный на названии бандла, пробовал через него путь задавать - не находит В конфиге пытаюсь передать путь на тег профайлер дата-коллектора
Юра
Всем привет. Кто знает можно ли как-то зешедулить сообщение в месенджере что-бы через какое-то время только выполнилось?
Юра
Нужно как-то сделать действие и через час к примеру чтобы сделать другое действие думал можнт как-то можно запаблишить сообщение типо через час
Null
Я обычно такие кейсы через крон решаю
Viktor
Всем привет. Кто знает можно ли как-то зешедулить сообщение в месенджере что-бы через какое-то время только выполнилось?
Возможно это то, что нужно) $this->bus->dispatch( new Envelope( new TextBackMessage($message->getId()), [new DelayStamp(self::DELAY)] ) );
Viktor
но контроля в этом варианте мало, конечно
Юра
Спасибо. Мне не нужно супер точно
Юра
Просто нужно обработать too many requests , отключить кое-что и потом включить
Diana Dvoryak
при установке nelmio/api-doc-bundle в symfony кидает ошибку о не совместимости, что можно сделать?
kakoi-to-noob
посмотри для начала под какую версия symfony бандл
Михаил
У меня такая же проблема была, но с другими пакетом - с монологом (где структуру лога сменили с массива на объект) Как бы не старался обновить конфликты ещё что-то сделать - компостер мне выдвавл всё новое и новое. Закончилось это вообще комично - компостер писал что скачивает версию 3.2 устанавливал её, а потом даунгрейдил до 2.9 короче шизил по полной и было ощущение что всячески мешал поставить эту версию. Решил проблему многочасовой перепиской с отделом безопасности нашей компании и техлидом, после которой они мне разрешили снести composer.lock и установить пакеты. В чём была проблема я так и не понял
Михаил
Может кто знает, есть ли нормальный пакет который декорирует команды компостер но даёт понятный аутпут. То есть о не пишет ПОЧЕМУ компостер не может обновиться, а как то умно понимает ЧТО НАДО СДЕЛАТЬ что бы компостер обновился
Diana Dvoryak
у тебя 2 версия symfony?
"symfony/framework-bundle": "7.0.*",
kakoi-to-noob
а версию бандла какую ставишь?
Diana Dvoryak
вот так: composer require nelmio/api-doc-bundle думаю по умолчанию последняя ставится
Михаил
Компостер это композер?
да, у меня после интервью с одной hr-кой случилось ментальное замещение composer на composter. Прям как в mr. Robot
Nikolay
да, у меня после интервью с одной hr-кой случилось ментальное замещение composer на composter. Прям как в mr. Robot
Единственное что могу посоветовать, это why, why not, и пробовать обновить пакет с флагом, который принудительно обновляет связанные зависимости. Ещё пробовал вместо update явно require новой версии делать
Михаил
Михаил
больше похоже на баг
Nikolay
Михаил
в компостере или в лок файле (может быть кто-то криво решил дифф)
Михаил
нет
Nikolay
нет
Если какие варнинги или несоответствия в версиях он покажет
Nikolay
в компостере или в лок файле (может быть кто-то криво решил дифф)
Обычно такое на ci проверяется, как раз через validate
kakoi-to-noob
в мастере "symfony/http-kernel": "^5.4|^6.0"
Юра
Ты бы показал полное сообщение
Юра
Или там только Problem 1?
Diana Dvoryak
Или там только Problem 1?
только Problem 1, но текст еще есть
Nikolay
Подскажите по PhpSpreadsheet. Генерится файл из html, когда данные целиком передаются, то все ок. $reader->loadFromString($data, $spreadsheet) Логика примерно такая: 1. Генерится кусок html 2. Этот кусок записывается на страницу 3. И так пока есть какие-то данные Проблема в том, что на страницу записываются всегда последние данные, и не совсем понятно, можно ли как-то аппендить данные на существующую страницу
Юра
Ну почитай их доку
Юра
Можно ли аппендить данные на страницу
Nikolay
Можно ли аппендить данные на страницу
Читал, не нашел такой возможности. Видимо нельзя
Михаил
Лучше вот этот писец используй
Михаил
Он может писать огромные объёмы без мемори ликов
Михаил
И на его основе можно сделать «дозапись»
Михаил
PhpSpeadsheet полная туфта и годится только для маленьких доков. Я взял код из либы выше и переписал доя себя. Делаю миллионные отчёты с дозаписью - всё чётко
Nikolay
PhpSpeadsheet полная туфта и годится только для маленьких доков. Я взял код из либы выше и переписал доя себя. Делаю миллионные отчёты с дозаписью - всё чётко
Я бы использовал, если бы можно было переделать. Сейчас там списки в html генерятся, и нужно из этих списков делать документ