
Aleksei
07.02.2018
14:02:35
Вчера надо было приходить ?

Daniel
07.02.2018
14:03:09
но я планирую это исправить (надо только с ремонтом закончить, чтоб время появилось)

Andry
07.02.2018
14:08:14

Google

Andry
07.02.2018
14:10:04
Фомкин, ты придешь?
Хотя конечно по времени что-то поздновато...:(

Daniel
07.02.2018
14:12:10

Aleksei
07.02.2018
14:34:08
@optician_owl Ремонт дело такое, да

Andry
07.02.2018
15:07:36
Скаланы есть вопрос, как мне на акторах сделать следущее.
Есть список акторов, которые ожидают сообщение, и мне нужно, например, если это сообщение взял уже один из акторов(ну т.е. оно подошло ему по каким-то критериям), то остальным оно уже не отправляется.
Чота я курю доку, вот как послать всем сообщение есть, понимаю как сделать, а вот как остановить рассылку что-то не доходит...

Александр
07.02.2018
15:08:08
а распиши структуру и почему они все сообщения ждут ?

Andrey
07.02.2018
15:08:27
роутер?

Alexey
07.02.2018
15:08:41
кастомный роутер

Andry
07.02.2018
15:08:58
Скорее реквестор

Александр
07.02.2018
15:10:41
можно то по разному, можно шину бросить и остальным сообщать
можно по таймауту

Andry
07.02.2018
15:12:18
Ну т.е. идет обработка запросов, которые могут соответствовать ожидаемым, ежели соответствует, то возвращается определенный ответ и актор который ответил на него прехедит в ожидание следующего запроса, ежели не соответствует, то возвращается сообщение по умолчанию.

Anton
07.02.2018
15:16:07
Область значения предикатов акторов пересекается?

Google

Anton
07.02.2018
15:16:16
Или каждое сообщение подходит строго одному?

Александр
07.02.2018
15:17:26
у тебя n акторов ждут ответа

Alexey
07.02.2018
15:18:08
Звучит как не то что должно делаться акторами

Andry
07.02.2018
15:18:14
Ну нет они должны ждать своих запросов

Alexey
07.02.2018
15:19:02
Или тебе надо каждого поочереди опрашивать: "а ты можешь?"

Anton
07.02.2018
15:19:15
Не делай мультикаст, лучше воткни перед ними актор-роутер, который направляет сообщение ровно одному подходящему актору-обработчику.

Andry
07.02.2018
15:19:17

Alexey
07.02.2018
15:20:11
а сделайте стикер пак со стикером - акка акторы не нужны

Alexey
07.02.2018
15:20:16
С акторами предикат просто дожен быть не внутри актора тогда уж

Andry
07.02.2018
15:20:38
Блин чорд...

Alexey
07.02.2018
15:21:05
Ну типо да

Andry
07.02.2018
15:21:27
Угмс спасибки чота я заработался.... совсем голова не варит

Anton
07.02.2018
15:21:39
Если хочешь начать продуктивно использовать акторы — забудь про мантру “все актор”.
Используй их только там где тебе нужна координация/линеаризация каких-то событий.

Alexey
07.02.2018
15:22:19
нетепизированные акторы - это ваще шаг в пхп какой то

Andry
07.02.2018
15:22:22

Andrey
07.02.2018
15:22:38

Aleksey
07.02.2018
15:55:01

Google

Александр
07.02.2018
15:57:07

Р
07.02.2018
15:58:51
Если религия не позволяет использовать нетипизированные акторы, то почему бы не взять Akka-Streams? ?

Anton
07.02.2018
15:59:18

Александр
07.02.2018
15:59:50

Anton
07.02.2018
16:00:08
Никаких гарантий в compile time.

Александр
07.02.2018
16:00:19

Anton
07.02.2018
16:08:18
Это не значит, что акторы плохие. Они на несколько порядков лучше работы с локами/тредами и прочими классическими примитивами, но они все равно остаются очень низкоуровневой абстракций и по определению имеют побочные эффекты, поэтому лучше селить их где-то “на краю мира” вместе со всем остальным side-effectful кодом.

Alexey
07.02.2018
16:09:12
Но зачастую и это оверкилл

Kirill
07.02.2018
16:11:17

Anton
07.02.2018
16:12:26
А чего тут врываться. Actors > Threads, Monix > Actors.

sherzod
07.02.2018
16:17:20
У акторов еще есть location transparency

Р
07.02.2018
16:17:28

sherzod
07.02.2018
16:18:36

Anton
07.02.2018
16:22:50
А их и не надо сравнивать по метрике “кто круче”. В реальном приложении у тебя будет все вперемешку. Чем больше гибкость, тем меньше гарантий. Для каждой задачи надо выбрать подходящую абстракцию по principle of least powerful abstraction.

Р
07.02.2018
16:24:19
Классическая статья:
https://www.chrisstucchio.com/blog/2013/actors_vs_futures.html

Anton
07.02.2018
16:29:01
Тут не про акторы, но это вообще полезный принцип:
http://www.lihaoyi.com/post/StrategicScalaStylePrincipleofLeastPower.html

Oleg
07.02.2018
16:42:47
МВары с обсёрваблами вытеснили акторы, упростив и ускорив код в большинстве мест у меня

Александр
07.02.2018
16:44:00

Google

Р
07.02.2018
16:47:08
А есть Mvar-Persistence? ?

Oleg
07.02.2018
16:48:48
Ну или там hazelcast

Р
07.02.2018
16:51:38

Oleg
07.02.2018
16:52:42

Александр
07.02.2018
16:53:03
нашел 1 доку и 0 видео на youtube без упоминания haskell, ScalaAsBetterJava джедаи ниасилят

Р
07.02.2018
16:53:52

Oleg
07.02.2018
16:54:30
На самом деле моникс простой как пробка. В сто раз проще акки.
Ну и когда у тебя есть потребность ремоут, кластер или вон персистенс, его не покроет

Александр
07.02.2018
16:55:19

Anton
07.02.2018
16:55:59
https://monix.io ?

Oleg
07.02.2018
16:56:00

Р
07.02.2018
16:56:02
Канеш
В акторах в этом случае делают обычно eventually consistent слушателя. То есть пишут через актор, а читают напрямую. Получается... MVar.

Anton
07.02.2018
16:56:02
Там отличная дока.

Р
07.02.2018
16:56:33

Александр
07.02.2018
16:56:34

Oleg
07.02.2018
16:56:52

Anton
07.02.2018
16:57:02

Oleg
07.02.2018
16:57:13
В моём случае нужно было обязательно узнать результат из актора

Р
07.02.2018
16:57:23

Google

Александр
07.02.2018
16:57:25

Р
07.02.2018
16:58:44
Да простой он очень этот Моникс. Типа как Akka-Streams, но для плебса и без матерализеров :D И то, и другое имеет право быть, а ещё и отлично интегрируется через reactive-streams.

Oleg
07.02.2018
16:58:50
я запутался
В Мапу складывается контент, чтобы контент два раза не складывать в акторе генерится ему ключик, либо возвращается ключик уже имеющегося.
Этот ключик нужен потребителю

Р
07.02.2018
17:01:49

Oleg
07.02.2018
17:01:50
Не видел, чтобы в кешах генерились ключики после того, как контент уже естт

Р
07.02.2018
17:05:45

Oleg
07.02.2018
17:05:46
Это кокеш какой-то
Грубо говоря, нужно для контента получить короткий айдишник.
Или вернуть имеющийся, если есть

sherzod
07.02.2018
17:12:32
iкеш тогда
я просто недавно читал scala-with-cats))

Oleg
07.02.2018
17:15:41
iкеш тогда
я имел в виду, что
key --[probably cached]-> value
заменено на
key <-[probably cached]-- value

Р
07.02.2018
17:15:55
Звучит как обычный кеш от content в key.

sherzod
07.02.2018
17:16:02
а. понятно, мне показалось в обе стороны

Oleg
07.02.2018
17:16:16