Капитан
Ты же не будешь сравнивать пароход и машину по расходу топлива
Alexey Mishurovskiy
Мне все уместно. Сорян я дальше спать.
Юра
Всем привет. Решил на новом проекте попробовать наконец-то симфони месенджер
Юра
Сразу же возник вопрос - а как там сделать несколько воркеров, чтобы они разгребали как в ребите каждый своё?
Юра
в AMQP транспорте там есть параметр prefetch_count
Maks
а типа создать несколько транспортов и в роутинге их назначить, не?)
Юра
нет
Юра
задача такова что есть очередь сообщений, и надо динамически иметь возможность менять -кво воркеров
Юра
там есть в AMQP транспорте параметр prefetch_count
Юра
если его поставить в 1 и запустить к примеру 5 воркеров с одним и тем же транспортом что будет вообще?
Maks
хз) я больше одного воркера не запускал
Alexey Mishurovskiy
Юра
Проверил. Все норм.
Юра
Меседжи раскидываются по разным воркерам
أبو زكية
Всем привет!
При сборке react компонентов через yarn encore dev —watch Возникает ошибки
warning in ./assets/svg/index.js
Can't import the named export 'ReactComponent' (reexported as 'ArrowRoundedDown7x5Svg') from default-exporting module (only default export is available)
Содержимое index.js
// @link https://facebook.github.io/create-react-app/docs/adding-images-fonts-and-files#adding-svgs
export { ReactComponent as ArrowRoundedDown7x5Svg } from './arrow-rounded-down-7x5.svg';
export { ReactComponent as ArrowRoundedDown9x6Svg } from './arrow-rounded-down-9x6.svg';
При сборке через yarn build без ошибок.
Помогите понять в чем проблема, куда копать? Прогуглил не нашел ответа.
Юра
Написано в тексье ошибки поияинан
Юра
Написано что только дефолт экспорт в модуле есть, а ты пытаешься его импортировать словно вьмодуле есть несколько экспортов
Maks
попробуй export { default as ArrowRoundedDown9x6Svg } from './arrow-rounded-down-9x6.svg';
Magzhan
Добрый день! Можете помочь с api platform надо переопределить get запрос? Этот get с коллекцией, а не один элемент
Viktor
Всем привет!
Возможно, кто-то сможет помочь.
В проекте используем symfony messenger component. Создали три сообщения и три хэндлера к ним, все из них async.
Подключили это все к RabbitMQ, настроили на Ubuntu 20.03 Supervisor, чтобы следил на воркером. Вообщем, все как в официальной документации.
Так вот не понятно почему, если долго не пользоваться одним из трёх сообщений, то оно перестаёт работать, при том, что другие два продолжают нормально доставляться.
При этом если вручную выполнить команду consume то опять все три сообщения начинают работать и доставляться.
Нет ли у кого версии, почему такое происходит? Воркер один, supervisor один, но одно из трёх сообщений отваливается...
Ivan
У messanger есть timelimit, после которого воркер перезапускается, может это решит проблему?
bin/console messenger:consume async --time-limit=3600
Viktor
Да, установлен на 900 у нас
Юра
Что значит перестает работать
Юра
Остаётся висеть в очереди?
Viktor
Нет, как будто туда даже не попадает
Viktor
А при ручном выполнении команды consume начинает попадать и работать
Йожеф
@zavitkov Имели такую проблему решить перегрузкой очереди каждые 100 месседжей
/bin/console messenger:consume async_command --bus=command.bus --limit=100 --time-limit=600 --memory-limit=128M
Viktor
А что за —bus?
Viktor
Нигде не могу про неё найти
Йожеф
А что за —bus?
Єто значение берется из config services tag:
command_handlers:
namespace: App\Application\Command\
resource: '%kernel.project_dir%/src/Application/Command/**/*Handler.php'
autoconfigure: false
tags:
- { name: messenger.message_handler, bus: command.bus }
Юра
Басы настраиваются отдельно в ключе buses, отличабтся тем что могут иметь разные middleware
Shokha
у всех возникает
https://github.com/Haehnchen/idea-php-symfony2-plugin/issues
Рустам
После обновления на 2021.1 phpstorm в принципе интересные вещи выдает. Откатился пока на 2020.3
Юра
Согласен. У меня например на проекте после перезапуска шторма слетает версия пхп в настройках
Юра
Походу наняли индусов в штат
Jonny
Юра
Прикинь это не баг а фича
Юра
Оно читает версию из composer.json
Юра
"require": {
"php": ">=7.2.4",
Юра
отсюда
أبو زكية
Доброго времени!
Подскажите как правильно передать UID и GID в docker-compose чтобы в контейнере их использовать, для того чтобы пермишены на файлы были одинаковы.
Точнее, какие есть решения для того чтобы внутри контейнера были таки же доступы к файлу как у системного пользователя.
//docker-compose.yaml
...
build:
context: app
args:
UID: $(UID)
GID: $(GID)
...
//DockerFile
...
RUN addgroup --gid $GROUP_ID www-data && adduser --disabled-password --gecos '' --uid $USER_ID --gid $GROUP_ID www-data
...
//cmd
UID=$(id -u) GID=$(id -g) docker-compose up
Сейчас передаю как аргументы через консоль, но это не очень удобно.
Есть ли другие варианты, сорри за офтоп?
Dmitry
Юра
Штобы например шторм работал
Юра
И можно было править файлы
Юра
dh🇺🇦
Всем привет. Ищу ментора по Symfony.
Alexey Mishurovskiy
Всем привет. поделитесь своими соображениями по поводу целесообразности использования Api Platform и\или FOS Rest Bundle.
Чем они так жизнь облегчают ?
Юра
Ну типо накидал энтитией и все тебе и дока и готовое апи
Юра
А дальше куришь маны есди надо что-то поменять, а менять надо будет
Alexey Mishurovskiy
Ну под маны можно apidoc bundle юзать
Alexey Mishurovskiy
я просто понять не могу чо все так по апи платформе кипятком ссут
Юра
Потому что не надо думать
Юра
По началу )
Юра
Я давно уже накидал свою арзитектуру для рест апи
Юра
И юзаю её с проекта в проект
dh🇺🇦
Ребята, а подскажите в чем может быть ошибка.
Хочу протестить подключение к БД к контейнеру в докере
Вот docker-compose.yaml
services:
mysql:
image: library/mysql:5.7
hostname: mysql
environment:
MYSQL_DATABASE: symfony-in-docker
MYSQL_USER: root
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
ports:
- "3306:3306"
Файл .env
DB_USER=root
DB_PASS=
DB_HOST=mysql
DB_PORT=3306
DB_NAME=symfony-in-docker
DATABASE_URL=mysql://${DB_USER}:${DB_PASSWORD}@${DB_HOST}:${DB_PORT}/${DB_NAME}
В контроллере делаю проверку на подключение к БД
/**
* @Route("/")
*/
public function hello(): Response
{
$connection = $this->getDoctrine()->getConnection();
$connection->connect();
dump($connection->isConnected());die;
}
dh🇺🇦
И в результате получаю пот такую ошибку
"An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known"
Юра
А откуда ты подключаешься?
Юра
По названию контейнер доступен только из других контейнеров в той же сети
dh🇺🇦
Вот мой docker-compose.yaml целиком
dh🇺🇦
services:
mysql:
image: library/mysql:5.7
hostname: mysql
environment:
MYSQL_DATABASE: symfony-in-docker
MYSQL_USER: root
MYSQL_ALLOW_EMPTY_PASSWORD: "yes"
ports:
- "3306:3306"
php-fpm:
image: webdevops/php-dev:7.3
hostname: php-fpm
volumes:
- "./:/app"
working_dir: "/app"
depends_on:
- mysql
nginx:
image: webdevops/nginx
hostname: nginx
environment:
WEB_DOCUMENT_ROOT: /app/public
WEB_DOCUMENT_INDEX: index.php
WEB_PHP_SOCKET: php-fpm:9000
ports:
- "80:80"
volumes:
- "./:/app"
depends_on:
- php-fpm
dh🇺🇦
тестовый проект запускаю через localhost:80/
Alexey Mishurovskiy
смотри как у тебя собирается dsn
Alexey Mishurovskiy
xdebug в помощь
Юра
https://docs.docker.com/network/bridge/#differences-between-user-defined-bridges-and-the-default-bridge
Юра
Ну так налон просто попинговать mysql
Юра
И посмотреть оно вообще доступно по имени или нет
dh🇺🇦
У меня после запуска docker-compose up, контейнер mysql в статусе Exited :(
dh🇺🇦
Уже в который раз
Alexey Mishurovskiy
ну так смотри что у тебя там за ошибки
Alexey Mishurovskiy
там же все написано :)
dh🇺🇦
Да вот разбираюсь
Юра
docker logs mysql
Alexey Mishurovskiy
ну и я бы перкону поставил :)
Юра
Я тоже на ней сижу