Vasily
Должен быть return! messageLoop
Nikolay
let! context = inbox.Receive() sendCat context можно как-то заменить на подобное: inbox.Receive() |> sendCat
Nikolay
?
Ayrat
Как же мне нравится развальцовывать дутых оопшников
Ayrat
Ох, можно и поработать
Vasily
В общем случае у тебя может несколько типов сообщений прилететь
Roman
Насколько я успел заметить, с мейлбоксами всегда идет немного бойлерплейта. @vshapenko как думаешь, имеет смысл что-нить вроде этого вынести в нугет? https://github.com/kagetoki/SnakeGame/blob/master/PostOffice/Mailbox.fs
Roman
ну там рашпилем немного доработать - пробросить Dispose например
Vasily
Ну насчёт Kill не уверен
Vasily
Скорее мейлбокс должен принимать список обработчиков
Vasily
Разных типов
Vasily
Но как это красиво засунуть в f# ,я пока не придумал :)
Vasily
Там понятно, что словарь по типу сообщения, но это же фуфуфу
Vasily
В общем, мне лично не совсем понятно, как такую обвязку корректно написать
Roman
Скорее мейлбокс должен принимать список обработчиков
типа разные applyMessage с разным входным типом message?
Vasily
И тут вот неясно
Vasily
То ли делать кучу мелких мейлбоксов
Roman
ну самые отважные такое решают через IoC, но от одной мысли воротит
Nikolay
Как импротировать только maybe из ExtCore.Control?
Roman
То ли делать кучу мелких мейлбоксов
можно объединить входные типы сообщений в DU
Vasily
можно объединить входные типы сообщений в DU
А если их неизвестное количество?
Roman
а кейс реальный есть? Мб если их неизвестное кол-во, то что-то не так с дизайном?
Vasily
Который можно было бы юзать для уменьшения бойлерплейта
Roman
Ну так тот, кто хелпер использует, сам объединит в DU все, что ему надо, не? Не уверен, что стоит брать на себя эту ответственность
Vasily
Тогда зачем Kill?
Roman
Чтоб актор перестал обрабатывать входящие сообщения и помер навсегда
Vasily
Если есть CancellableToken
Roman
Мне это 1 раз понадобилось, но я там накосячил с роутингом сообщений
Roman
поэтому не уверен, стоит ли оставлять такой функционал. С другой стороны - каши не просит
Roman
ну а если сценарий, что поток сообщений теоретически бесконечен, и когда-то таки надо остановиться и перестать?
Roman
без kill трудно реализовать
Vladislav
Тогда зачем Kill?
это же PoisonPill из акки, нет?
Roman
смешное название
Bonart
Как же мне нравится развальцовывать дутых оопшников
Предпочитаешь на британский флаг или на японский?
Ayrat
Предпочитаешь на британский флаг или на японский?
=) Тут проблема в том что аргументы те же
Vasily
У мейлбокса есть перегрузка
Roman
о, прикольно. Добавлю тогда
Vasily
С другой стороны, если нужно детерминированную,то лучше килл
Roman
ну как бы можно наверное и самому на каждой итерации чекать токен
Roman
сделать то же самое, только не через вызов килл, а через отзыв токена
Nikolay
А post не тормозит?
Nikolay
@FSharpBot тыкните пожалуйста пару раз :)
Nikolay
/meow
Vasily
Задержки есть, но сообщения вроде не теряет
Bonart
Тыкнул. Пишет что отправляет фото - и тишина
Bonart
Фото не пришло
Vasily
Ну, значит, заломали
Vasily
Надо код смотреть
Nikolay
Так, а юзеров не считает
Vasily
Мне котиков отдаёт
Nikolay
Плохо
Nikolay
/stats если что
Nikolay
А тыкните ещё раз @FSharpBot
Bonart
Вроде поперло
Nikolay
Хмм, почему-то стейт не сохраняется
Vasily
У меня мяу отвалилось
Vladislav
задудосил
Vladislav
в хлам
Bonart
А мне задуддосить не вышло
Nikolay
Так
Nikolay
А тыкните ещё раз
Nikolay
Арбайтен
Nikolay
Спасибо
Bonart
Несколько мяу в одном сообщении не понимает
Nikolay
https://github.com/Dolfik1/ItMeetupCats/blob/dev/Program.fs
Nikolay
Вот код, посмотрите :)
Vasily
Ошибка есть
Nikolay
Где?
Vasily
При изменении стейта делай return! messageLoop newState
Nikolay
Всмысле?
Nikolay
А сейчас как?
Nikolay
Аа