@Fsharp_chat

Страница 624 из 772
Ayrat
29.06.2018
10:40:45
Очень хорошо

Vasily
29.06.2018
10:40:46
У меня это нестрашно

Я персистить буду только определенные сообщения

Для последующей переотправки

Google
Ayrat
29.06.2018
10:41:18
Т.е. есть всегда возможность продолжить работу. пока жива система она может перезапустить акторов

При этом у меня как-то актори система жила на машине где память кончилась, в контейнере лимит харда выжрали логи, а цпу спинлочился на какой-то левой программе которая пыталась эти логи гигабайтные регекспамит прочитать.

И она мне отвечала удалённо лол

Я даже дамп не смог удалённо снять, а убить акторов грейсфули чтобы не просрать важные сообщения смог. Магия блин

я после этого поверил в чудеса

Bonart
29.06.2018
10:51:44
Так вот они какие, тихоходки

Vasily
29.06.2018
13:59:47
Кстати, одноразовые акторы делаются без rec?

Pavel
29.06.2018
14:00:48
Одноразовый это как?

Словил один месседж и умер?

Vasily
29.06.2018
14:01:09
Ну он нужен на прием одного сообщения

Да

Pavel
29.06.2018
14:01:33
Нужно чтобы он сам себе poisonPill послал

Google
Roman
29.06.2018
14:01:37
Пиши как обычно, убивай стандартными средствами.

Pavel
29.06.2018
14:01:46
А rec тут не причем

Ayrat
29.06.2018
14:04:38
ток имей в виду что пойзон пил имеет повышенный приоритет в мейлбоксе.

Vasily
29.06.2018
14:07:42
Непонятно пока

В общем, ситуация следующая

У меня есть канал

У него есть стейт

Ayrat
29.06.2018
14:08:30
Ну смотри. у тебя в мейлбоксе 100 собщений важных, необработанных. Ты шлёшь пойзон пилу, у неё повышенный приоритет, актор обрабаывает её первую и умирает. все сообщения уходят в дедлеттерс сразу

Vasily
29.06.2018
14:08:34
Плюс мне приходят сообщения

КОторые надо отправить в канал

Перед отправкой надо проверить стейт

Стейт канала у меня по факту является контекстом, куда я пишу сообщения

BinaryWriter*BinaryREader

Вот и думаю, как все это совместить

Т.е. во внешний актор приходит сообщения для отсылки

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

Ayrat
29.06.2018
14:11:39
Я для таких вещей делал ин мемори шаред стейт, но ентерпрайзненько внедрял их в акторы через DI

иногда что-то проще сделать без акторов

Vasily
29.06.2018
14:11:57
Да проще сообщение трансформить

Пришло сообщение, к нему клеить стейт, кидать в актор

Google
Ayrat
29.06.2018
14:12:50
т.е. если у тебя в натуре есть стейт и его надо расшарить инмемори - шарь, но конкурентные струкруты юзай. Если надо стейт ремоутить, тут да, придётся оборачивать

оборачивать этот стейт в актора и отдавать наружу интерфейсы типа Добавь, измени, удали и пр

Pavel
29.06.2018
14:15:52
Я все-таки не уловил зачем shared state. Почему нельзя его инкапсулировать в акторе?

Мне кажется тут можно на акторах разрулить, вероятно со сменой состояния

Ayrat
29.06.2018
14:19:17
Ну когда надо просто между акторами замутить справочный мапинг, то... можно просто сделать ConcurrentDictionary :D

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

Vasily
29.06.2018
14:20:10
Ситуация немного другая

Думаю, чего актор сообщения не принимает. Оказалось - шлю не те....

Такс, Option мы гонять не можем по актору, как я понимаб

*понимаю

По некоторым причинам

Pavel
29.06.2018
14:26:54
Ну если все крутиться на одной машине и на f# то почему нет?

Vasily
29.06.2018
14:27:14
None\

Ругается

На null

МВАХАХАХАХА

Ayrat
29.06.2018
14:27:29
да, он в null превращается

в рантайме

это ж ОПТИМИЗАЦИЯ

:D

Google
Vasily
29.06.2018
14:27:46
Отстрел ноги

Ayrat
29.06.2018
14:28:53
введи тип DomainMsg, куда добавишь Id сообщения, дату создания, TTL и пр что пригодится для логирования и метрик. в него можно будет оборачивать Option

ну это как бы совсем ентерпрайзненько

Vasily
29.06.2018
14:31:11
Это пока рано

Ayrat
29.06.2018
14:31:44
Но проблему решает

Vasily
29.06.2018
14:41:59
Так, осталось понять, как DeadLetters глядеть

Ayrat
29.06.2018
14:42:34
Тебе для дебага?

Vasily
29.06.2018
14:42:41
Угу

Ayrat
29.06.2018
14:43:06
В конфиге можно указать чтобы дедлетерсы отображались в логере

Vasily
29.06.2018
14:43:33
А логер куда скидывается по умолчанию?

Ayrat
29.06.2018
14:43:44
{ "akka": { "stdout-loglevel": "DEBUG", "loglevel": "DEBUG", "log-config-on-start": "on", "actor": { "debug": { "autoreceive": "on", "lifecycle": "on", "unhandled": "on", "router-misconfiguration": "on" } }, "loggers": [ "Akka.Event.StandardOutLogger, Akka" ] } }

да там что угодно можно подключить

это вот нормальная конфига для дебага. показывает лайфсайл месаги акторов, типа родился умер, показывает анхедлд, т.е. те которые прилетели в актора а у него хендлера не оказалось ну и т.д.

Roman
29.06.2018
14:54:25
А не для дебага? Т.е. у меня шарды и как понять что сообщение не дошло и переотправить?

Ayrat
29.06.2018
14:55:35
"Не дошло и переотправить" конфиг не сможет :D это проблема логики

боюсь придётся написать немного кода ;)

Evgeniy
29.06.2018
14:57:37
Довольно жестко ты обошелся с программистами C#. :)

Ayrat
29.06.2018
14:59:30
Да, постебал их чутка. Думал, закопают после митапа, но нет, обошлось

Evgeniy
29.06.2018
15:00:05
Пример со схемой понравился, оригинально. :)

Google
Ayrat
29.06.2018
15:00:38
Самое сложное было найти патент

И перерисовать пример из книги :)

Vasily
29.06.2018
15:09:21
ПОхоже, акка еще не умеет пересылать сообщения вида 'a->unit

Ayrat
29.06.2018
15:09:59
Честно скажу, не пробовал никогда.

Vasily
29.06.2018
15:10:30
Для меня это нормальный процесс сбора грабель :)

Pavel
29.06.2018
15:15:30
ПОхоже, акка еще не умеет пересылать сообщения вида 'a->unit
Proto.actor вроде умеет. Кажется я такое пробовал

Bonart
29.06.2018
16:03:34
Довольно жестко ты обошелся с программистами C#. :)
На самом деле спас провальный во всем остальном митап райфа

евроневидимка
29.06.2018
16:04:47
https://www.youtube.com/watch?v=tXf5_0pWWnI&t=1h22m
какая интересная тема

Ayrat
29.06.2018
17:36:49
Как он все же будет отвечать на запросы?
Поздний ответ. ну это ж вебсервер. он работает как обычный вебсервер, слушая порты, роуты и пр. И так же он актор, поэтому он принимает сообщения и может их отсылать.

Roman
29.06.2018
17:41:29
https://www.youtube.com/watch?v=tXf5_0pWWnI&t=1h22m
И правда отличный доклад.

https://www.youtube.com/watch?v=tXf5_0pWWnI&t=1h22m
И все же как пересилить свою нелюбовь к обилию различны комбинаторов? Начальные слайды были понятны, но короткий вариант красивый, но менее читабельный. кмк. С Fparsec еле сложилось из-за этого...

Ayrat
30.06.2018
00:14:54
И все же как пересилить свою нелюбовь к обилию различны комбинаторов? Начальные слайды были понятны, но короткий вариант красивый, но менее читабельный. кмк. С Fparsec еле сложилось из-за этого...
Рассматривать это как dsl. Т.е. Именно что domain specific. Если везде гопак, то все должны понимать что это значит. Ну или писать простыни.

Evgeniy
30.06.2018
07:36:09
https://twitter.com/k_cieslak/status/1001804822704787456

Ayrat
30.06.2018
07:37:24
твит от 30го мая же

Evgeniy
30.06.2018
07:38:22
Я человек простой, вижу @sergey_tihon репостит -- сам репощу. :)

Сам я чаще в Rider пишу, давно не слежу за обновлениями Ionide. ?

Sergey
30.06.2018
08:16:42
Я человек простой, вижу @sergey_tihon репостит -- сам репощу. :)
? я тоже не всегда за датами слежу =) иногда пропускаю интересные твитты

хороший формат для F# встреч (столик на 4х =) ) https://www.meetup.com/FSharp-Toronto/events/251728582/

Evgeniy
30.06.2018
08:18:27
Ну, @neftedollar занимается организацией F# бирапов в Москве. :)

Страница 624 из 772