Size: a a a

Kotlin Community

2020 July 13

M

Malik in Kotlin Community
Какое-то извращение получается. Какой в этом смысл?
источник

AM

Andrew Mikhaylov in Kotlin Community
Bogdan Panchenko
Тебе нужно серелизраать все объекты которые в нем находятся, а как это сделать - очень сложная задача
Ну чисто теоретически можно ж дополнительные ограничения навернуть в каком-то виде, чтобы сделать задачу возможной. Тот же MPI не на магии работает.
источник

AL

Anton Lakotka in Kotlin Community
Bogdan Panchenko
Тебе нужно серелизраать все объекты которые в нем находятся, а как это сделать - очень сложная задача
не совсем так.
я не собираюсь сериализовывать все подряд. есть довольно узкий паттерн Сага где это имеет смысл. и там особо не нужно целое дерево зависимостей.
источник

BP

Bogdan Panchenko in Kotlin Community
Andrew Mikhaylov
Ну чисто теоретически можно ж дополнительные ограничения навернуть в каком-то виде, чтобы сделать задачу возможной. Тот же MPI не на магии работает.
Ну про то и речь. Ограничения также нужно продумать
источник

RI

Ruslan Ibragimov in Kotlin Community
Anton Lakotka
не совсем так.
я не собираюсь сериализовывать все подряд. есть довольно узкий паттерн Сага где это имеет смысл. и там особо не нужно целое дерево зависимостей.
Пробовал kryo/java serialization?
источник

RI

Ruslan Ibragimov in Kotlin Community
Может оно уже как-то работает
источник

RI

Ruslan Ibragimov in Kotlin Community
А, там проблема достать сам Continuation наверное, нужно рефлексией заниматься
источник

AL

Anton Lakotka in Kotlin Community
Malik
Какое-то извращение получается. Какой в этом смысл?
а вот есть у тебя некий огромный Workflow  который может длится долго например бронирование мест в самолете.
и очень важно чтобы процесс мог упасть в любой момент и востановиться на упавшем моменте на любой другой машине.
+ возможность распаралеливания задач в кластере.

ибо сейчас приходится дробить этот воркфлоу на функции самостоятельно и прописывать где-нибудь в документации что за чем следует.
а вот с корутинами была бы 1 функция
источник

AL

Anton Lakotka in Kotlin Community
Ruslan Ibragimov
Пробовал kryo/java serialization?
нет. я по большей степени мечтал только о такой фиче, чем пытался ее решить 🙂
Хотя следуется посмотреть, может чего накопаю.
источник

M

Malik in Kotlin Community
Anton Lakotka
а вот есть у тебя некий огромный Workflow  который может длится долго например бронирование мест в самолете.
и очень важно чтобы процесс мог упасть в любой момент и востановиться на упавшем моменте на любой другой машине.
+ возможность распаралеливания задач в кластере.

ибо сейчас приходится дробить этот воркфлоу на функции самостоятельно и прописывать где-нибудь в документации что за чем следует.
а вот с корутинами была бы 1 функция
а обычный REST с кастомным протоколом поверх tcp для этого не подходит?
источник

BP

Bogdan Panchenko in Kotlin Community
Anton Lakotka
не совсем так.
я не собираюсь сериализовывать все подряд. есть довольно узкий паттерн Сага где это имеет смысл. и там особо не нужно целое дерево зависимостей.
В Continuation находятся данные для восстановления стейта, и тут все зависит от вашего стейта, которым манипулируют корунтины, если стейт весь серелизуется то все ок
источник

RI

Ruslan Ibragimov in Kotlin Community
Шаг 1. Достать объект который нужно сериализовать (наверное можно решить рефлексией)
Шаг 2. Сериализовать-передать-десериализовать (тут могут быть проблемы)
Шаг 3. Вызвать функцию в корутине, передать туда Continuation (Опять рефлексия)
источник

AL

Anton Lakotka in Kotlin Community
Bogdan Panchenko
В Continuation находятся данные для восстановления стейта, и тут все зависит от вашего стейта, которым манипулируют корунтины, если стейт весь серелизуется то все ок
да он сериализуется уже сейчас.
источник

AN

Alexander Nozik in Kotlin Community
Anton Lakotka
> до сериализации состояния корутины и отправки задачи выполнить её по сети на другую машину.
а вот тут мне интересно, есть ли уже какие-то решения? ибо я очень хотел это заиметь 🙂
Есть обсуждение.  Оно точно будет. Но не известно когда
источник

AN

Alexander Nozik in Kotlin Community
Anton Lakotka
там вроде была проблема в том как сериализовать Continuation
Проблема в том, как сделать так, чтобы захватывались только сериализуемые объекты
источник

AN

Alexander Nozik in Kotlin Community
Andrew Mikhaylov
Можно попробовать Романа тегнуть, если кто-то этим и занимается, публично об этом заявив, он, скорее всего, об этом знает 🤷‍♂
Занимается, но в режиме думанья. Contributions are welcome.
источник

AN

Alexander Nozik in Kotlin Community
Anton Lakotka
нет. я по большей степени мечтал только о такой фиче, чем пытался ее решить 🙂
Хотя следуется посмотреть, может чего накопаю.
Наводка. Конкретная задача - это модификация компилятора, которая позволить захватывать только сериализуемые объекты в некоторой маркированной лямбде. Решение этой задачи сильно продвинет вопрос вперед.
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Шаг 1. Достать объект который нужно сериализовать (наверное можно решить рефлексией)
Шаг 2. Сериализовать-передать-десериализовать (тут могут быть проблемы)
Шаг 3. Вызвать функцию в корутине, передать туда Continuation (Опять рефлексия)
На самом деле нет. Так как cps делает все на этапе компилляции, то и сериализацию-десереализацию можно сделать там же.
источник

RI

Ruslan Ibragimov in Kotlin Community
Alexander Nozik
На самом деле нет. Так как cps делает все на этапе компилляции, то и сериализацию-десереализацию можно сделать там же.
Ну в идеале делать ничего не нужно, и все должно быть уже сделано, это скорее вопрос то как сейчас можно грязными руками подлезть и сделать. А не ждать 1.5 :)
источник

AN

Alexander Nozik in Kotlin Community
Ruslan Ibragimov
Ну в идеале делать ничего не нужно, и все должно быть уже сделано, это скорее вопрос то как сейчас можно грязными руками подлезть и сделать. А не ждать 1.5 :)
Мы же про разработку фичи, а не про ее использование
источник