|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
PetroNotC Sharp lleming пропущено... см первый пост. Как из не актора (сервиса) узнать состояние актора. Не важно какой сервис spring boot, jersy, apache common, quarkus. В асинхронке нельзя сделать снимок и остановить время. Легко, просто нужно попросить. Причем здесь остановка времени возьми CopyOnWriteArrayList. Как бд работают хоть и запросы ассинхронно едут. чет не могу понять при чем здесь остановить время. Я про конкретный api спрашиваю. Вот тебе без оставноки времени и message queueu. Код: java 1. 2. 3. 4. 5. 6. 7.
done. Ничего не надо останавливать. Но тут руками все управляется нужно правильно выделить и убить future т.е. свой велосипед писать. Вот еще реализация. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
тоже никаких очередей и остановок времени. Но это тоже велосипед ибо придется на каждый чих всятвлять replyTo акторы. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 14:47 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mayton, ТС пока молчит и про монитор и про дебаг. Неужели нельзя добавить в актор пару сообщений дебага? Странно. куда вставить месье? API еще нет непонятно как вызвать этот метод да так чтобы скомпилирвоался код а точку уже ставить хочешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 14:49 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming, Давай начнём с теории и потом к практике. Акка не имеет глобальной консистентности данных. Согласен? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 14:52 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
Как ни странно - https://doc.akka.io/docs/akka/current/logging.html Или отладчик. Но я-бы не пользовался отладчиком. КМК он убийственно подействует на эти супервизоры. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 14:55 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming PetroNotC Sharp mayton, ТС пока молчит и про монитор и про дебаг. Неужели нельзя добавить в актор пару сообщений дебага? Странно. куда вставить месье? API еще нет непонятно как вызвать этот метод да так чтобы скомпилирвоался код а точку уже ставить хочешь? 1 привет мир на акторах 2 ловить сообщения штатные акторов 3 добавить в актор до сообщения 4 ловить их тоже. Какой пункт непонятен? Это логирование а не Пошаговая. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 14:59 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
PetroNotC Sharp lleming, Давай начнём с теории и потом к практике. Акка не имеет глобальной консистентности данных. Согласен? Дискутировать не хочется абстрактно ни к чему это не приведет. Я привел пару "грязных" примеров решающих мою проблему. Но суть в том что решения не идеальные и хочется общего подхода. Patterns.ask(actor, msg, duration); как сделать так чтобы это заработало и все, весь вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:01 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
PetroNotC Sharp lleming пропущено... куда вставить месье? API еще нет непонятно как вызвать этот метод да так чтобы скомпилирвоался код а точку уже ставить хочешь? 1 привет мир на акторах 2 ловить сообщения штатные акторов 3 добавить в актор до сообщения 4 ловить их тоже. Какой пункт непонятен? Это логирование а не Пошаговая. уж все давно готово. так что делать с Patterns.ask(actor, msg, duration) ? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:04 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming mayton В первом посту ты захотел из актора как из функции получить результат. Актор скорее всего так не работает. Его юзкейс предполагает что он либо пошлет парочку месседжей либо создаст парочку новых акторов. Если тебе нужно узнать "как там дела" - то это скорее всего называется мониторинг. И это (возможно) описано здесь https://doc.akka.io/docs/akka/2.5/general/supervision.html Насколько я понимаю философию акторного программирования - зависнувшие надолго (!) акторы просто убиваются по линии принятия решения выше. Кто там сверху? Охранник. Guardian. И потом стек рестартует. Вот такая вот постановка говорит о том что akka не интегрируется с другими фрейворками типа спригбута такое замечание уже было. Т.е отправил сообщение в акку из спригбута и все с концами. Что оно там делает непонятно и результатов не увидеть. Но здравый смысл подсказывает что акка без спригбута разве что только для маргиналов ибо всю обвязку, или щетай переписать спригбут на акторах "невозможно" да и не нужно. значит есть способы но непонятно как пока. способы то есть. послать сообщение, ждать пока оно будет отработано, все это время висеть НО т.к. акка не гарантирует доставку (и обработку) сообщения, в высоконагруженных системах вполне реально получить и бутылочные горлышки (например закончились HTTP потоки на сервере) и зависшие потоки которые ждуть обработки умерших сообщений и т.д. Т.ч. система начинает обрастать guardian'ами и всеким прочим велосипедами со страшной силой. IMHO & AFAIK lleming см первый пост. Как из не актора (сервиса) узнать состояние актора. Не важно какой сервис spring boot, jersy, apache common, quarkus. IMHO В общем случае на гарантированный момент времени - никак. Или нужно городить велосипеды. lleming чет не могу понять при чем здесь остановить время Разные акторы могут работать в разных потоках. pure-java код и акторы - точно в разных В тот момент, когда ты получил состояние актора, у актора это состояние может уже поменяться. Или нужны велосипеды IMHO lleming возьми CopyOnWriteArrayList CopyOnWrite тебе не дает "состояние". Он как раз и дает копию на какой-то момент в прошлом, без гарантии, что это состояние не поменялось. Еще хуже, если тебе хочется/нужно согласованное состояние нескольких акторов. Пока ты будешь опрашивать один актор, состояние соседних может поменяться. IMHO Note : На самом деле тут ОЧЕНЬ МАЛО людей которые ЗНАЮТ AKKA. Некоторые возможно с ней сталкивались на реальных проектах (например я где-то 3-4 месяца), некоторые игрались/читали книжки. Но это не есть знания. Например у меня, тот опыт который был на реальном проекте, скорее был опыт как не надо делать. И к моменту, когда я пришел на проект, АККА медленно но верно все больше заменялась велосипедами ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:09 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming PetroNotC Sharp lleming, Давай начнём с теории и потом к практике. Акка не имеет глобальной консистентности данных. Согласен? Дискутировать не хочется абстрактно ни к чему это не приведет. Я привел пару "грязных" примеров решающих мою проблему. Но суть в том что решения не идеальные и хочется общего подхода. Patterns.ask(actor, msg, duration); как сделать так чтобы это заработало и все, весь вопрос. Ему 4 чела говорят что задача странная. А он - дискутировать не хочу))) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:16 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
ну чтото в этом роде там я предполагаю Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:32 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming, Найди демку с ask Future<Object> ask = Patterns.ask(ActorRef/ActorSelection, Object, timeout) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:56 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming, Вот это позволяет снимки состояний Agent<Config> agent = Agent.create(new Config(), getContext()) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 15:57 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
PetroNotC Sharp lleming, Найди демку с ask Future<Object> ask = Patterns.ask(ActorRef/ActorSelection, Object, timeout) я с самого начала про это и говорю. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
что здесь будет в Object ? Демок нет есть утверждения в javadoc что это работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:08 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
А долго еще мы будем бросаться огрызками кода? Может собрать какое-то подобие проекта? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:21 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming, Обьект String не работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:29 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming, Почему нельзя отправить строку а не свой навороченный объект чтобы всех запутать? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:37 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
PetroNotC Sharp lleming, Обьект String не работает? пока не удалось даже скомпилировать, нужна какая то сигнатура но непонятно какая javadoc тоже молчит ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:48 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming, какую ошибку выдает компиллятор? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:50 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
lleming, Future<String> future = Patterns.ask(myActor, "писец" , Duration.ofMillis(10000)); ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 16:52 |
|
получить ответ от актора в акка
|
|||
---|---|---|---|
#18+
can't resolve method ask чорт, не обратил внимания изза простой ошибки. Из за того что сразу оба импортируются и имена синхронизиованы большей частью в разных пакетах. Ну по типу akka.types.Behaviors новое типа type safe api dsl, а есть "старое/классическое" они идут в паре типа com.akka.Behavior и есть com.akka.typed.Behavior и я привык что они в паре идут и нужно просто имя пакета проверять и этого достаточно. А тут оказалось нестандартно. я пользовался com.akka.Patterns это из стандартного а из нового нужно было com.actor.typed.javadsl.AskPattern. ну из плюсов я угадал как работает под капотом из callback акторов. Всем спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2021, 17:25 |
|
|
start [/forum/topic.php?fid=59&msg=40048462&tid=2120519]: |
0ms |
get settings: |
26ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
360ms |
get tp. blocked users: |
2ms |
others: | 291ms |
total: | 766ms |
0 / 0 |