@scala_ru

Страница 520 из 1499
Grigory
27.02.2017
07:39:14
да, и маскирует это за толщиной

многоходовочка (с)

Dmitry
27.02.2017
07:41:05
Google
Sergey
27.02.2017
07:42:03
Dmitry
27.02.2017
07:42:35
А зачем тогда вообще акторы?

Nikita
27.02.2017
07:45:51
ну вот собственно сообщество и озвучило мои мысли

правда когда я приходил в чатик у меня были другие ожидания от сообщества - умные ребята, обсуждение новостей и статей на предметную область

и все это конечно здесь есть, но столько трололо, и так шума/непонимания много, зачем еще намеренного добавлять

Mikhail
27.02.2017
07:47:16
Для тех кто в танке, там даже ноту вверху прикрепили) Note Just as with regular Akka Actors, Typed Actors process one call at a time.

Nikita
27.02.2017
07:48:16
это будет не в акторах
конечно же я имел ввиду Актора как место в памяти (а не поток исполнения), что в future.onComplete ты можешь поменять переменную внутри актора

Nikita
27.02.2017
07:50:34
А ты смешной
ну давай поясни тогда свои мысли теперь, без шуток

Oleg
27.02.2017
07:50:52
за базар поясни

Sergey
27.02.2017
07:52:25
Для тех кто в танке, там даже ноту вверху прикрепили) Note Just as with regular Akka Actors, Typed Actors process one call at a time.
Блин точно. Значит у меня что то другое. Отсюда вопрос, как более православно делать запрос с возвратом результата ? через future, ask или через Untyped + RequestMsg ResponseMsg ?

Google
Denis
27.02.2017
07:52:54
если ты вне системы то ask это нормально

Mikhail
27.02.2017
07:53:16
ну давай поясни тогда свои мысли теперь, без шуток
То, что ты можешь обратиться к обьекту и что-то с ним делать - это прекрасно, но это собственно часть возможностей языка. К библиотеке это никакого отношения не имеет.

Denis
27.02.2017
07:53:21
если внутри то tell, но не забудь про таймауты всякие

Sergey
27.02.2017
07:53:32
Мне тоже кажется что вторым способом оптимальнее, но многословнее

если ты вне системы то ask это нормально
Вне системы , что имеется ввиду ? Всё же в акторах происходит

Nikita
27.02.2017
08:01:29
Поиск работы здесь не возбраняется проводить?)

Mikhail
27.02.2017
08:01:58
Вне системы , что имеется ввиду ? Всё же в акторах происходит
Денис слишком кратко высказался. Его мысль заключалась в том, что если ты реализуешь пример из доков "Пинг-Понг" - тебе стоит использовать семантику только посылки сообщений, а не request-response. Когда ты отправил пинг, тот может ответить через sender() ! Pong. Если же источник соощения вне актора, то sender ! Pong уйдет в дедлеттерс

Daniel
27.02.2017
08:03:26
Nick
27.02.2017
08:04:13
зачем вы рассуждаете о его мыслях

Oleg
27.02.2017
08:04:55
зачем вы рассуждаете о его мыслях
Он уважаемый человек, все так делают, посмотри курс школьной литературы, там постоянно рассуждают о чужих мыслях

Daniel
27.02.2017
08:05:49
все учителя литературы и гиды в музее

Nick
27.02.2017
08:06:24
мысли человека можно обсудить, если его нет где-то рядом) я так считаю

а вы в чатике можете и спросить прямо, что он имел ввиду

Oleg
27.02.2017
08:07:05
мысли человека можно обсудить, если его нет где-то рядом) я так считаю
в чатике все находятся в промежуточном состоянии между "рядом и есть"

Nikita
27.02.2017
08:07:19
То, что ты можешь обратиться к обьекту и что-то с ним делать - это прекрасно, но это собственно часть возможностей языка. К библиотеке это никакого отношения не имеет.
ок, я понял, моя ошибка - не достаточно точно изначально выразился. ход мыслей был такой: 1. Человек говорит что у него внутри тайпед акторов конкуретный доступ и он переделывает на обычные акторы 2. Контракт любых акторов - последовательная обработка сообщений - очень маловероятно что создатели Akka тупанули и в тайпед акторах (любой версии) нарушили контракт акторов 3. Вывод - скорее всего человек делает что-то не так в тайпед акторах, и продолжит делать ту же ошибку в обычных акторах, поэтому я привожу пример с неправильным обращением с обычным актором - использовать контекст актора из future.onComplete

Oleg
27.02.2017
08:07:26
у телла нет таймаута
именно поэтому нужно скедулить себе сообщение, чтобы не ждать вечно

Google
Mikhail
27.02.2017
08:07:29
Nikita
27.02.2017
08:07:56
тогда скину, когда сообщения перестанут бежать так быстро :D

Mikhail
27.02.2017
08:09:01
именно поэтому нужно скедулить себе сообщение, чтобы не ждать вечно
опять таки это ведет к брейку "реквест-респонз", потому что ты ручками начинаешь отслеживать флаги. и когда тебе понг придет - без ask это означает, что ты понятия не имеешь на какой пинг он пришел и вобще пришел ли он на пинг

Oleg
27.02.2017
08:09:01
вопрос, а нужно ли его ждать?
в большинстве ситуаций, где естественнен request-response, спрашивающий сильно зависит от ответа

Nick
27.02.2017
08:09:44
дык request-response умеет и сам отвалится)

если про браузер говорить

Mikhail
27.02.2017
08:11:06
имеешь понятие, если оставишь себе идентифицирующую запрос информацию
симулировать конечно можно, но костыльно. телл не для симуляций, для чистых акторов епт, без сайд эффектов

Oleg
27.02.2017
08:11:09
дык request-response умеет и сам отвалится)
Актор A что-то хочет спросить у Актора B - как это сделать? ask или не ask?

Oleg
27.02.2017
08:12:19
по мне так именно ask костыльно использовать для actor-actor

потому что в случае ask, если не ошибаюсь, реципиент будет ждать ответ от конкретного актора, в случае tell, он может делегировать ответ вдоль по системе

Nikita
27.02.2017
08:15:46
какие такие чистые акторы без сайд эффектов???

Mikhail
27.02.2017
08:15:47
ок, я понял, моя ошибка - не достаточно точно изначально выразился. ход мыслей был такой: 1. Человек говорит что у него внутри тайпед акторов конкуретный доступ и он переделывает на обычные акторы 2. Контракт любых акторов - последовательная обработка сообщений - очень маловероятно что создатели Akka тупанули и в тайпед акторах (любой версии) нарушили контракт акторов 3. Вывод - скорее всего человек делает что-то не так в тайпед акторах, и продолжит делать ту же ошибку в обычных акторах, поэтому я привожу пример с неправильным обращением с обычным актором - использовать контекст актора из future.onComplete
опять как-то коряво совсем, причем тут правильное использование акторов? правильный посыл как раз в том, чтобы разделить, что является частью семантики акторов, а что нет. и когда ты делаешь future.oncomplete - это к акторам вобще никакого отношения не имеет

Oleg
27.02.2017
08:16:48
давай за базар поясняй

Grigory
27.02.2017
08:16:50
как токсично, мне нравится, продолжай

Google
Mikhail
27.02.2017
08:17:07
по мне так именно ask костыльно использовать для actor-actor
если тебе нужна семантика - "реквест-респонз", ты так или иначе будешь реализовывать свой костыль вместо ask и оно будет куда костыльнее.

вот че ты докопался
лопатку дали, я и копаю)

Ivan
27.02.2017
08:17:57
вот тут примерно и начинается акка-ад следить за такими цепочками мало удовольствия
такой же ад как и в любых приложениях с очередями, т.е. никакого

Denis
27.02.2017
08:18:15
давай за базар поясняй
Да все так, если actor-actor используй tell c timeout. Хочешь обратиться к актору не из актора используй ask.

Admin
ERROR: S client not available

Denis
27.02.2017
08:19:50
но и как обычно it depends

Mikhail
27.02.2017
08:20:04
Да все так, если actor-actor используй tell c timeout. Хочешь обратиться к актору не из актора используй ask.
но с телл+скедулед таймаут будет уже не реквест-респонз. несмотря на то, что при определенных условиях - очень похоже

Nikita
27.02.2017
08:20:32
а зачем делать tell с таймаутом если есть ask?

Nikita
27.02.2017
08:20:36
опять как-то коряво совсем, причем тут правильное использование акторов? правильный посыл как раз в том, чтобы разделить, что является частью семантики акторов, а что нет. и когда ты делаешь future.oncomplete - это к акторам вобще никакого отношения не имеет
я все понимаю что ты имеешь ввиду, я просто пытался из далека зайти, а этот пример для наглядности что ты можешь сломать актор модель фьючером изнутри, но в данном конкретном случае конечно надо было по другому строить диалог с человеком, ведь я не знал о его уровне осведомленности про технологии которые он использует

Nikita
27.02.2017
08:21:58
потому что при ask у тебя создается прокси актор

Mikhail
27.02.2017
08:22:36
а зачем делать tell с таймаутом если есть ask?
потому что есть разные шаблоны программирования. и есть те, которые не базируется на реквест-респонз

Nick
27.02.2017
08:22:39
ой, давайте лучше о монадах

Nikita
27.02.2017
08:23:19
так ведь ты и не сломаешь модель акторов своей футуркой. может сломаться только твоя программка, если она вдруг думает, что она является частью актора
ок я не имел ввиду ломать дизайн актор модели, и тут я тоже согласен футура не ломает дизайн, но прогрммку можно сломать - что у чела и случилось

Nick
27.02.2017
08:23:49
лучше скажите, перестал ли coursier сносить башню идеи?

Mikhail
27.02.2017
08:24:10
ну а телл с таймаутом это как раз и реквест-респонз
да нет жеж. неудивительно, что потом люди кричат "не шмогла я в акторы, акторы днище, го в го"

Denis
27.02.2017
08:24:41
лучше скажите, перестал ли coursier сносить башню идеи?
пользуюсь с очень раннего майлстоуна и все ок

Google
Denis
27.02.2017
08:24:43
что не так?

Nikita
27.02.2017
08:24:47
да нет жеж. неудивительно, что потом люди кричат "не шмогла я в акторы, акторы днище, го в го"
да почему нет? таймаут есть, значит ожидаем ответ, по сути тот же аск. вот если бы таймаута не было, то было бы другое дело

Denis
27.02.2017
08:26:04
гут
добавил global plugins, отлично все работает

Mikhail
27.02.2017
08:26:22
Nikita
27.02.2017
08:30:25
Ну вот видишь, пришел наконец к тому, что реакция на футурку не является частью акторов.
когда я первый раз упоминал актора, я имел ввиду конкретный инстанс актора а не модель или дизайн акторов. а то что футурка не часть актор модели я и так знал и к этому сейчас не приходил, просто у нас с тобой возникло элементарное недопонимание, и как мне показалось ты решил потыкать меня носом в дизайн на всякий случай если я его вдруг не понимаю, спасибо за заботу :)

Mikhail
27.02.2017
08:32:18
да почему нет? таймаут есть, значит ожидаем ответ, по сути тот же аск. вот если бы таймаута не было, то было бы другое дело
Потому что как я написал выше - это будет крайне похоже на реквест-респонз только при определенных условиях. Сейчас накидаю на скасти грубые примеры

Nikita
27.02.2017
08:37:49
все уже сменили пароль на апворке?) тут же кладуфлар удивил https://blog.cloudflare.com/incident-report-on-memory-leak-caused-by-cloudflare-parser-bug/

Denis
27.02.2017
09:02:39
Да, есть такое, поэтому приходится возвращать в response userId что бы знать на какой запрос пришел ответ.
или если ты роутер (или типа того) можешь сделать forward и ответ улетит оригинальному сендеру

Nikita
27.02.2017
09:04:58
https://scalafiddle.io/sf/aMU66L4/1
вообще пример весьма замудренный. какую проблему он решает?

Mikhail
27.02.2017
09:05:05
Да, есть такое, поэтому приходится возвращать в response userId что бы знать на какой запрос пришел ответ.
Мало того, что это банально неудобно, так это будут только цветочки - весь говно-бойлерплейт только начнет зарождаться на этом месте.

Denis
27.02.2017
09:07:09
так что если можешь решить проблему через Future/Task или стримы то лучше решай через них

Mikhail
27.02.2017
09:07:50
вообще пример весьма замудренный. какую проблему он решает?
Он не решает проблему. Он показывает проблему, что телл+таймаут не равнозначно семантике "рек-респ" в лице аск

вообще пример весьма замудренный. какую проблему он решает?
и это не мудреный пример. Это только пара моментов, которые решаются аском внутри

Sergey
27.02.2017
09:19:46
а зачем делать tell с таймаутом если есть ask?
Tell это истинно акторный подход, он и по remote работает и вобще в этом идея акторов. А ask как уже заметили это не про акторы и нада использовать его редко, когда невозможно/неудобно делать req resp через сообщения

Борис
27.02.2017
09:23:37
не чаще трех раз в неделю?

Страница 520 из 1499