Nikolay
А если я создаю актора, с определённым именем, например - id юзера, и мне нужно ему отправить сообщение из другого актора, я это по данному имени должен как-то делать, или как вообще правильно? Речь про Akka и Akkling
Nikolay
Ну ты задай
Надо внимание привлечь, а то так не отвечают
Nikolay
Помнится мне говорили, что это плохо
Nikolay
И вроде медленно
Vasily
Плохо по инстансу
Vasily
Т.е. по IActorRef
Nikolay
Всмысле?
Vasily
Ну ты можешь делать select
Vasily
Для выбора множества акторов адресатов
Vasily
Это норм
Nikolay
Ну мне один актор нужен
Vasily
А можешь пытаться материализовать
Vasily
По адресу
Vasily
Это не очень
Nikolay
let userSelection = select<UserAction> mailbox.System actorName let! userActor = userSelection.ResolveOne(TimeSpan.MaxValue) userActor <! UserAction.Update user
Nikolay
Так что-ли?
Vasily
Угу
Vasily
Только это резолв
Vasily
И это плохо
Nikolay
А как правильно отправлять актору сообщение, если знаешь его имя?
Nikolay
Помнится вроде предлагали делать отдельный актор, который будет гейтом к этим акторам, и у которого в стейте будет dictionary из IActorRef
Vasily
Actor selection
Nikolay
Actor selection
let userSelection = select<UserAction> mailbox.System actorName userSelection <! UserAction.Update user
Nikolay
Так можно делать, да?
Vasily
Если в результате actor selection, то да
Nikolay
И это быстро будет?
Nikolay
А резолв тогда зачем?
Ayrat
А резолв тогда зачем?
Для детерминизма ценой скорости
Ayrat
Это типа императивный приказ "вручить лично адресату под роспись, убедившись что он живой".
Nikolay
А в случае с селекшном если актора такого нет, то он ничего не получит, так?
Vasily
@omgszer уже с приветом из солнечного Дублина?
Hog
@omgszer как гинес на исторической родине?
Ayrat
В домах не топят, спать надо в одежде. Ебанутые
Nikolay
В домах не топят, спать надо в одежде. Ебанутые
Я в одежде сплю, привет из России с любовью
Hog
Газификация не добралась?
Ayrat
Чот за гранью.
Я тоже пока не оценил.
Ayrat
Газификация не добралась?
Ну хотя бы электрификация добралась!
Nikolay
Так. Но это проблема дизайна
Все норм, меня устраивает
Ayrat
Все норм, меня устраивает
Я имел в виду твоего дизайна
Nikolay
Ну у меня такой проблемы не возникает, что актора может не существовать в этот момент
Ayrat
То есть не надо делать актор систему где месаджи могут не найти адресата
Hog
Ну хотя бы электрификация добралась!
Электричеством греть дорого
Nikolay
Т.е. он всегда будет, если только не помер
Nikolay
А если помер и пересоздается, мессадж не будет получен?
Hog
Если помер, там есть страте
Hog
Вот я тоже хотел спросить
Nikolay
По стратегии естественно
Ayrat
Когда актор рестартится он не помирает. Когда актор стопается он уносит в могилу и мейлбокс
Ayrat
И акторРеф туда же
Nikolay
А какой-нибудь NRE стопанёт актор?
Ayrat
Тут будет рейс кондишн, успеет ли создаться новый мейлбокс по адресу или нет
Ayrat
А какой-нибудь NRE стопанёт актор?
Ексепшны по дефолту вызывают рестарт
Nikolay
А, ну норм, т.е. мейлбокс не сдохнет
Nikolay
А что стопанёт актор?
Hog
Пилюля
Ayrat
А что стопанёт актор?
Пойзон Пилл Или Actor.Stop()
Ayrat
Метод вызывается у контекста или акторРефа
Ayrat
То есть владеющий акторРефом может убить. Или сам актор может себя убить
Hog
«Актор, выпей йаду!»
Hog
Ексепшны по дефолту вызывают рестарт
А там последний неокученный мессаж не перепосылается?
Ayrat
А там последний неокученный мессаж не перепосылается?
По дефолту он дропается, но можно переопределить поведение в методе онРестарт
Vladislav
Т.е. по IActorRef
Я думал что так наоборот хорошо
Ayrat
Там один из параметров метода месадж последний. Его можно явно себе послать в мейлбокс ещё раз)
Ayrat
Но так лучше не делать
Vladislav
Типо ссылки гонять
Hog
Но так лучше не делать
Да, есть вероятность ухода в бесконечный рестарт
Ayrat
Типо ссылки гонять
Не, так плохо, надо по адресам общаться. АкторРефы должны у родителя сидеть
Ayrat
Ох уж эти тёрки за Акку.
Ayrat
Мир в себе.
Hog
Я начал читать «Concurrency in .net»
Hog
Вроде там тоже глава про акторы есть, вот только хз когда до неё доберусь
Ayrat
Кстати. Вы знали что ключевое слово lazy в фшарпе ну очень особое?