@Fsharp_chat

Страница 609 из 772
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
это такой лок, но с очередью вызовов чтобы внешние источники не лочились, а накидали запросов в ящик и пошли своими делами заниматься

Но обычно они ждут ответа

так или иначе

Ayrat
21.06.2018
15:05:17
если вызовы без Reply
вот да. это редкость. потому что ответ хотя бы вида Ok/Error нужен

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
col.Find predicate|>List.of Seq
Я не уверен, что это эффективное решение.

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
Скорее всего оно неэффективное
Суть квотейшенов же в том, что из них составляется Query.

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

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

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
Кстати, к вопросу об акторах - как делают бродкасты правильно?

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
Ну в акке это решается конфигом для актора. указываешь там динамическое скалирование и в ус не дуешь

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