@symfony_php

Страница 480 из 1418
Sergey
13.12.2017
08:22:46
хттп ошибками
а таймауты?

а ретраи как?

Sergey
13.12.2017
08:22:57
хттп с таймаутами отлично справляется

если узел недоступен вообще то будет ретрай

Google
Sergey
13.12.2017
08:23:23
хттп с таймаутами отлично справляется
он отлично падает на них. вот есть у тебя изначальный запрос - ты наверняка не будешь дожидаться пока все куда-нибудь сходит, так?

ты ж там пулишь статус по сути выполнено или нет

Sergey
13.12.2017
08:23:46
пулинг да, но по факту есть ограничения по времени

юзер то ждет результатов

юзер делает запрос одновременно по 5 провайдерам, у каждого из них свой цикл. и если по первому провайдеру мы покажем результат сразу через 200мс, то второй провайдер может уйти в запой на 20 секунд

поэтому там пулинг

Sergey
13.12.2017
08:26:11
это понятно, я пытаюсь понять какой профит тебе тут дает http....

ну то есть, не совсем так

профит понятен

не понятно в чем сложность сделать демоны)

Sergey
13.12.2017
08:26:58
я не вижу от них профита никакого

Sergey
13.12.2017
08:27:08
так стой

Sergey
13.12.2017
08:27:13
сервисы на котлине, оверхеда от веба там ровно 0

Google
Sergey
13.12.2017
08:27:21
мы изначально говорили про ситуацию когда оверхэд фреймворка в 50 милисекунд может быть проблемой

Sergey
13.12.2017
08:27:22
все хттп запросы к внешним сервисам неблокирующие

ну это если у тебя симфони

у меня нет этого оверхеда

но если б был, то надо было б чето выдумывать

с демонами, amphp, phppm и прочим

5-10мс терпимо, 50мс - дофига

Sergey
13.12.2017
08:29:08
ну честно у меня в продакшене симфони давала оверхэд порядка 10 милисекунд в среднем. И это я уверен что не все сделал что бы было лучше (особенно уверен в том что неадекватно сделал листенеры)

но все же...

продолжим теортизировать) есть 2 сервиса, или больше - не суть. Ты хочешь вызвать метод и подождать. Простой RPC. так?

для этого тебе удобно использовать http так как мы явно будем получать ответ

Sergey
13.12.2017
08:35:05
было 10мс, а станет 5мс. отлично ведь
смотря сколько чего занимает, если эти 5ms составляют больше 10% от времени обработки запроса - то да, имеет смысл париться.

но как бы готовых вариантов для php предостаточно в целом - это и php-pm, и возможность замутить конвертацию http в rpc для демона...

но в том что ты описал - там же выходит что у тебя есть N сервисов с которыми ты паралельно работаешь.... и хз...

Sergey
13.12.2017
08:39:12
оверхеда от хттп нет, вызов хттп неблокирующий, обработка хттп тоже неблокирующая(не полностью). это все на много проще чем лепить шину(а еще нужно слушать обратный ответ, обрабатывать ситуации с таймаутами и тд) и конвертации http в rpc..

Sergey
13.12.2017
08:40:01
хотя конечно http проще

Sergey
13.12.2017
08:40:13
а зачем?)

Google
Sergey
13.12.2017
08:40:22
кролику и так достается нагрузки

единственное что в эту всю цепочку добавится реактивности

и с application/stream+json будет повеселее как-то

Arky
13.12.2017
08:59:42
@fes0r как тебе идея со счетчиком?)

Sergey
13.12.2017
09:05:42
Arky
13.12.2017
09:08:15
каким счетчиком?)
Ну типа в группе счетчик сообщений, и у всех пользователей чата тоже счетчик который считает сколько сообщений они получили.

Sergey
13.12.2017
09:10:34
Ну типа в группе счетчик сообщений, и у всех пользователей чата тоже счетчик который считает сколько сообщений они получили.
тепло но не решает задачу - тебе надо определить какие сообщения ты уже прочитал а какие еще нет. Как ты будешь это со счетчиком делать?

вдруг я тебя не так понял и это решает задачу

Sergey
13.12.2017
09:14:21
ну вот и славно)

Arky
13.12.2017
09:15:47
ну вот и славно)
А вот как это в коде реализовать...)

Sergey
13.12.2017
09:19:31
ну и пробуй конечно

Timur
13.12.2017
09:53:10
Можно как-то изменить тип маппинга доктрины? Сейчас используется Annotation mapping, a мне нужно для теста использовать yml mapping.

Timur
13.12.2017
09:54:19
я сделал свою аннотатацию и мне нужно протестировать как она работает на разных типах маппинга

Timur
13.12.2017
09:56:11
например я точно знаю что елси писать маппинг через аннотации то все работает

Google
Timur
13.12.2017
09:56:24
а что если придется писать маппинг через yml

мне нужно проверить будет ли работать в таком случае мой код или нет

Vladislav
13.12.2017
10:02:14
Сложно

Timur
13.12.2017
10:03:00
В документаций нашел вот такое https://symfony.com/doc/3.3/reference/configuration/doctrine.html#type

только вот чет не работает)

Sergey
13.12.2017
10:03:17
если ты кастомную аннотацию для мэппинга доктрины сделал

Timur
13.12.2017
10:04:00
если не будет, то мне нужно сделать тест который будет выдавать ошибку

Sergey
13.12.2017
10:04:03
логично ж что если у тебя мэппинг из yaml берется то он будет только оттуда браться

Admin
ERROR: S client not available

Sergey
13.12.2017
10:04:43
если не будет, то мне нужно сделать тест который будет выдавать ошибку
в этом тесте нет смысла. У тебя либо весь мэппинг одной сущности берется из аннотаций или нет. Это контролирует секция mapping в конфигурации бандла доктрины

ты там явно задаешь что юзать

Vladislav
13.12.2017
10:46:48
В php-ds структура set, если не ошибаюсь
ну на собеседовании у тебя такого нет)



рандома там нет

add, remove, contains это просто асоц массив в пхп

Andrey
13.12.2017
10:52:01
рандома там нет
Рандома да, но постоянно сдвигаются элементы, что поддерживает простые индексы.

И уникальные значения

Google
Sergei
13.12.2017
10:58:33
Посоветуйте какая либа зороша для CommandBus? Смотрел simple-bus/symfony-bridge но мне не нравится что они мидлваре используют вместо декораторов

Andrey
13.12.2017
11:20:13


Согласен, не подходит

Vladislav
13.12.2017
11:47:20
Lifecycle callbacks не желательно юзать для бизнес логики, а что тогда? Entity listener?

Мурад
13.12.2017
11:47:25
Vladislav
13.12.2017
11:47:54
после каждого апдейта title надо перегееривать урл.

Мурад
13.12.2017
12:28:08
Посоветуйте какая либа зороша для CommandBus? Смотрел simple-bus/symfony-bridge но мне не нравится что они мидлваре используют вместо декораторов
Но по сути мидлвар это и есть декоратор для commandbus. Или что ты имел ввиду под декоратором вместо мидлвари?

Bohdan
13.12.2017
12:30:49
tactician няшка но да, там мидлвари

Sergei
13.12.2017
12:31:42
Но по сути мидлвар это и есть декоратор для commandbus. Или что ты имел ввиду под декоратором вместо мидлвари?
Да я понимаю Мне просто почему то не нравится идея мидлварей, они себе просто навешиваются и все, и например я не могу сказать тут я использую командную шину с логером а там без логера

Bohdan
13.12.2017
12:32:19
в tactician с симфони можешь сделать несколько шин с разными настройками

и мидлварами, соответственно

Bohdan
13.12.2017
12:33:41
а за счёт того, что плагины ставятся на шину - их тоже можно настраивать отдельно

Sergei
13.12.2017
12:35:44
найс жаль только там handle а не __invoke

Мурад
13.12.2017
12:36:09
Это настраивается

Bohdan
13.12.2017
12:36:39
да, их там 5 видов

Sergei
13.12.2017
12:36:50
Спасибо я сделал свой выбор

Антон
13.12.2017
13:56:06
в симфони есть что то типа middleware?

Константин
13.12.2017
13:57:31
Антон
13.12.2017
13:58:21
если некоторый роут равен определенному условию, то делать редирект

Страница 480 из 1418