
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:31:10
да

Sergey
13.12.2017
08:35:05
но как бы готовых вариантов для 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
вдруг я тебя не так понял и это решает задачу

Arky
13.12.2017
09:12:50

Sergey
13.12.2017
09:13:12

Arky
13.12.2017
09:13:38

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.

Sergey
13.12.2017
09:53:44

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

Sergey
13.12.2017
09:55:03

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
ты там явно задаешь что юзать

Andrey
13.12.2017
10:45:56

Vladislav
13.12.2017
10:46:48
рандома там нет
add, remove, contains это просто асоц массив в пхп

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

Google

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

Vladislav
13.12.2017
11:08:37

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

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

Sergei
13.12.2017
12:31:42

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

Sergei
13.12.2017
12:32:58

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
если некоторый роут равен определенному условию, то делать редирект