
Vlad
21.06.2018
15:03:08
А в чем разница с простым методом? В переиспользовании коннекта?

Roman
21.06.2018
15:03:55

Vasily
21.06.2018
15:04:07
Уже ответили :(

Vlad
21.06.2018
15:04:13
Хм, понятно

Google

Ayrat
21.06.2018
15:04:42
это такой лок, но с очередью вызовов чтобы внешние источники не лочились, а накидали запросов в ящик и пошли своими делами заниматься
Но обычно они ждут ответа
так или иначе

Roman
21.06.2018
15:04:59

Ayrat
21.06.2018
15:05:17

Vasily
21.06.2018
15:05:51
PostAndReplyAsync

Ayrat
21.06.2018
15:06:45
Ну да, это то что я выше ченелом назвал.

Vasily
21.06.2018
15:12:14
Короче, лично мне мейлбоксы нравятся
Очень удобная штука для хранения стейтов
Хотя плохо, что нативно к нему эвенты не приделали

Roman
21.06.2018
15:14:36

Vasily
21.06.2018
15:15:20
Ну фиг знает. МНе было бы полезно

Roman
21.06.2018
15:15:30
н никто не мешает тебе взять в замыкание актора какой-нибудь subject и в него пушить event а ля Rx

Google

Vasily
21.06.2018
15:16:00
Ну то на то

Roman
21.06.2018
15:17:24
А как ты представляешь себе ивенты там?

Vasily
21.06.2018
15:17:34
Ну смотри
Задача такая

Roman
21.06.2018
15:17:45
Напиши код)

Vlad
21.06.2018
15:18:52
Если я правильно понял

Vasily
21.06.2018
15:19:28
Ну можно, конечно, через сообщения просовывать

Evgeniy
21.06.2018
15:19:35

Vasily
21.06.2018
15:20:17
col.Find predicate|>List.of Seq
let find predicate =...

Mariia
21.06.2018
15:21:08
А можно глупый вопрос?
Тоесть при работе с базой всегда должен быть меилбох?
А как он должен создавать/убиваться. Пер реквест?

Vasily
21.06.2018
15:22:07
Ну я создаю один
На все время жизни
УБиваетя по токену

Evgeniy
21.06.2018
15:22:43

Mariia
21.06.2018
15:23:23
На все время жизни
Ну я насколько я понимаю этот вариант не годится если много коннкшенов нет? + Не совсем понимаю чем такой вариант отличается от вара без меилбоакса

Vasily
21.06.2018
15:23:25
Скорее всего оно неэффективное

Google

Mariia
21.06.2018
15:23:34
Может подсказать кто-то?

Vasily
21.06.2018
15:23:53
Мейлбокс нужен для организации очереди запросов

Mariia
21.06.2018
15:25:04

Vasily
21.06.2018
15:25:53
Опять же, я легко могу прикрутить, например, определенные действия при обновлении объектов
Но это уже про эвенты скорее

Evgeniy
21.06.2018
15:29:09

Vasily
21.06.2018
15:29:50
Который потом компилится в ту же лямбду

Evgeniy
21.06.2018
15:30:12

Vasily
21.06.2018
15:30:13
Но в целом соглашусь, что для сложных запросов удобнее

Mariia
21.06.2018
15:30:25

Vasily
21.06.2018
15:30:28
Там же поиск по BSON, да

Evgeniy
21.06.2018
15:30:35
https://github.com/mbdavid/LiteDB/wiki/Queries

Vasily
21.06.2018
15:33:27
Кстати, к вопросу об акторах - как делают бродкасты правильно?

Ayrat
21.06.2018
15:33:55

Vasily
21.06.2018
15:34:09
А в ней что используют?
Акка у меня пока не влезет по фреймворку

Ayrat
21.06.2018
15:34:32
ActorSelection по вайлдкардам например и туда Send
или хитрых акторов которые знают про акторов

Google

Vasily
21.06.2018
15:34:50
А если хочется, чтобы не знали?

Ayrat
21.06.2018
15:34:50
ты как бы пихаешь ему, а он пихает кому знает
А как ты хочешь броадкаст устроить если ты не знаешь кому броадкастить?

Vasily
21.06.2018
15:35:26
Ну файрить эвенты
Кому надо, тот подпишется

Ayrat
21.06.2018
15:35:48
А, в EventStream пихай
там есть в акке системная шина

Vasily
21.06.2018
15:36:09
В общем, надо будет к акке присмотреться

Ayrat
21.06.2018
15:36:13
туда можешь чо угодно посылать, и на неё кто угодно может подписаться

Vasily
21.06.2018
15:36:19
А то пока велосипед на мейлбоксах
С другой стороны, у меня сплошные синглтоны по сути
Поэтому акторы надо порождать специфичные
С шаред стейтом

Ayrat
21.06.2018
15:40:06
акторы с шаред стейтом? это что такое?
это какие-то неправильные акторы

Vasily
21.06.2018
15:40:28
Ну у меня сценария многопользовательского нет
Всегда одна сессия
Есть пользовательский контекст, который надо заполнять. Синглтон акторы есть?

Ayrat
21.06.2018
15:44:02
Ну конечно

Vasily
21.06.2018
15:44:15
Это хорошо

Google

Ayrat
21.06.2018
15:44:21
актор это просто очень хитрый таск, с которым можно общаться

Vasily
21.06.2018
15:44:24
Это при создании актора задается?

Ayrat
21.06.2018
15:44:34
Ну конечно это не так), но аналогию такую можно провести
В акке акторы можно через DI создавать, с полным фаршем

Vasily
21.06.2018
15:45:08
А как в f#?

Ayrat
21.06.2018
15:45:20
там это называется Props. Т.е. реквизит актора

Vasily
21.06.2018
15:45:39
Хмм

Ayrat
21.06.2018
15:47:20
тут есть проблема небольшая с F# акторами.
в F# акке акторы создаются с хитрым типом, который DI не распознаётся, потому что ты по сути лямбду создаёшь.
А если идти ООП-way, то ты делаешь класс, который наследует Actor и поэтому можешь к этому классу привязываться и создавать его через DI

Vasily
21.06.2018
15:47:44
ООП не хочу
В свое время находился

Ayrat
21.06.2018
15:47:53
но в ФП DI вообще по-другому работает - через каррирование

Vasily
21.06.2018
15:48:09
Ну это понятно
Интересует вопрос в применении к akka.fsharp, например
Через мейлбоксы я делаю так - создаю в модуле мейлбокс плюс апи инстансом типа, причем все инстансы будут на один мейлбокс смотреть

Ayrat
21.06.2018
15:49:15
ну как бы на небольших проектах норм. Я огромные проекты на F# акке не писал, хз.
большой проект на акке у меня был на C#. Это я только потом узнал о F#, переписывать с теми крохотными знаниями никак нельзя было.

Vasily
21.06.2018
15:49:57
Т.е. мейлбокс поднялся, апи я могу плодить сколько угодно инстансов

Ayrat
21.06.2018
15:50:34
не понял, какое апи)

Vasily
21.06.2018
15:50:45
Обертка для post etc

Ayrat
21.06.2018
15:50:47
ааа

Vasily
21.06.2018
15:51:01
Чтобы не писать постоянно box.Post

Ayrat
21.06.2018
15:52:51
Ну в акке это решается конфигом для актора.
указываешь там динамическое скалирование и в ус не дуешь