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